Local validator / strict output
Check the record, not the story around it. The validator rejects malformed JSON, missing source attribution, unexpected fields, unstable identifiers, and control assertions without referenced evidence. It makes no network request and cannot certify that pasted claims are true.
LOCAL CALIBRATION BENCH https://2b9t.org/schemas/observation/v1
Inspect an observation record Paste one JSON object. This page checks it in your browser against the documented v1 shape; it does not send, retain, publish, or endorse the record.
SCHEMA / V1 Required field rail 01 schemaId02 recordId03 publicationState04 subject05 observedAt06 observation07 sources08 ownershipAssertion09 lastmod
Extra fields Rejected at their exact path
Sources At least one attributable source
Control claims Evidence-source reference required
Published records Dated observation required Read the complete machine contract {
"schemaId": "https://2b9t.org/schemas/observation/v1",
"schemaVersion": 1,
"inputMaxLength": 131072,
"recordIdPattern": "^obs-[a-z0-9]+(?:-[a-z0-9]+)*-v[1-9][0-9]*$",
"publicationStates": [
"example",
"draft",
"published"
],
"required": [
"schemaId",
"recordId",
"publicationState",
"subject",
"observedAt",
"observation",
"sources",
"ownershipAssertion",
"lastmod"
],
"additionalProperties": false,
"fields": {
"subject": {
"required": [
"endpoint",
"edition"
],
"additionalProperties": false
},
"observation": {
"required": [
"reachability",
"returnedVersion",
"protocol",
"note"
],
"additionalProperties": false
},
"sources": {
"minItems": 1,
"itemRequired": [
"sourceId",
"kind",
"title",
"url",
"accessedAt"
],
"itemAdditionalProperties": false,
"kinds": [
"direct-probe",
"server-response",
"owner-evidence",
"third-party",
"documentation"
]
},
"ownershipAssertion": {
"nullable": true,
"required": [
"statement",
"evidenceSourceId",
"assertedAt",
"expiresAt"
],
"evidenceRule": "evidenceSourceId must reference a source whose kind is owner-evidence",
"expiryRule": "expiresAt must be later than the UTC validation date",
"additionalProperties": false
}
}
}DOCUMENTATION EXAMPLE — NOT AN OBSERVATION Unavailable specimen The reserved endpoint example.invalid:25565 was not contacted. Its example state and “no endpoint request” note keep this sample out of the published cohort.
{
"schemaId": "https://2b9t.org/schemas/observation/v1",
"recordId": "obs-example-unavailable-v1",
"publicationState": "example",
"subject": {
"endpoint": "example.invalid:25565",
"edition": "minecraft-java"
},
"observedAt": null,
"observation": {
"reachability": "unavailable",
"returnedVersion": null,
"protocol": null,
"note": "Example record only; no endpoint request was made."
},
"sources": [
{
"sourceId": "src-observation-method-v1",
"kind": "documentation",
"title": "2b9t observation schema and method",
"url": "https://2b9t.org/methodology/",
"accessedAt": "2026-07-18"
}
],
"ownershipAssertion": null,
"lastmod": "2026-07-18"
}The interactive check needs JavaScript. The required fields, complete schema, labeled example, and empty published-cohort state remain available above and below.
Local JSON input One observation record Validate locally Validation stays in this tab. Nothing is submitted, stored, or added to this site.
Record ID —
Publication state —
Attributed sources 0
Control evidence — A VALID RESULT MEANS The shape is inspectable All required v1 keys are present and no extra key slipped through. IDs, dates, timestamps, source entries, and publication state use the documented forms. A control assertion, when present, points to a source explicitly typed as evidence. A VALID RESULT DOES NOT MEAN The claims are proven No endpoint is contacted and no source URL is fetched. No pasted record is retained, submitted, or published. No identity, availability, server state, affiliation, or quality conclusion is created by validation.