TypeAlias.ImportMappingEvidence
type ImportMappingEvidence = ObjectEnum<typeof ImportMappingEvidence>;
How much a suggested correspondence is corroborated — a different question from
who produced it (ImportMappingOrigin).
A class, not a number. The suggestion is scored on a nine-sample corpus holding a single false mapping, which cannot calibrate a continuous confidence; and the endpoint is an MCP tool, so publishing one would invite every client to invent its own threshold and turn a retuning into a silent behaviour change for third parties. A class also carries what a number cannot: what to check.
Corroboration comes from confronting the model's answer with the deterministic
matcher, which costs no model call. Two limits to keep in mind: the two are not
independent (the model reads the label the matcher reads, plus the values and the
field descriptions), so their agreement mostly certifies that the label was
unambiguous; and contested is the one class the corpus never exhibits —
confirmed (38), unaided (6), unopposed (14) and inadmissible (1) are all
observed, so its rank alone is a defensible assumption rather than a
measurement.
confirmed: the matcher independently proposes the same source. The strongest available grounds, and the ordinary case.unaided: the matcher had no comparable label anywhere in the sample — a headerless CSV. Its silence says nothing about any single correspondence, so this is not a doubt: it is where the model's advantage over the matcher lives, and the corpus maps six correct correspondences this way.unopposed: the matcher could read labels and still made no proposal for this destination. Nobody objects, nobody corroborates.contested: another candidate has a claim on this destination — a label the matcher could not tell from a namesake, or a different source it proposed instead. Names the confusions the matcher is built to fear: a factory name reaching the product title, a packaging weight reaching the product's.inadmissible: the values rule the correspondence out — a serialized collection on a scalar field, a lone scalar on a whole-array field, text on a numeric field. Never applied automatically, whatever its origin: this is not a weak correspondence but one that fails passport validation on every row.