JSON Interchange Format
July 25, 2026 ยท View on GitHub
Create and consume language-neutral calibration datasets without knowing Swift's enum representation.
Overview
The judge-calibration/v1 schema is intended for annotation tools, Python
pipelines, databases, Swift applications, and the judge-calibrate CLI. Stable
sample, rater, and dimension identifiers are JSON strings. Rating values are
ordinary JSON Booleans, finite numbers, or strings.
A scored ordinal rating looks like this:
{
"sample": "book-01",
"rater": "expert",
"dimension": "relevance",
"outcome": { "status": "scored", "value": 4 },
"metadata": {}
}
An explicit abstention is different from a missing rating:
{
"sample": "book-07",
"rater": "judge-v1",
"dimension": "relevance",
"outcome": {
"status": "abstained",
"reason": "The result description is incomplete."
},
"metadata": {}
}
Declare every dimension's measurement scale. For example:
{
"id": "relevance",
"name": "Book-search relevance",
"scale": { "type": "ordinal", "values": [1, 2, 3, 4, 5] },
"metadata": {}
}
The complete hand-authored files in the repository's Examples directory are
executable documentation. The schema never contains compiler-generated keys
such as _0 or Swift wrapper storage such as rawValue.
Compatibility rule
Adding an optional field is compatible. Changing a field's meaning, removing a field, or changing one of the documented shapes requires a new schema version. Validation rejects unsupported top-level schema versions rather than guessing.