final case class SchemaMismatch(schemaId: Int, writerFingerprint: Long, readerFingerprint: Long)
A Confluent-framed payload's writer schema (id schemaId) is not byte-identical to the reader schema — their Avro parsing-canonical-form fingerprints differ — so the direct byte walk would misread it. ConfluentWire.resolve / ConfluentWire.confluent GATE (refuse) here rather than hand back bytes that would misdecode. To TRANSLATE the drift instead of refusing, use the resolving reader (ConfluentWire.reader / ConfluentWire.resolving), which resolves writer→reader via Avro's ResolvingDecoder. Surfaced only by the gating surface.
Human-readable diagnostic. Kept separate from toString so the default enum representation remains useful for structural inspection / pattern-matching-in-tests.
Human-readable diagnostic. Kept separate from toString so the default enum representation remains useful for structural inspection / pattern-matching-in-tests.