Evidence starts with a record that can be checked.
Read the exact observation shape, then test a pasted JSON object without sending it anywhere. Passing this validator proves structure only. It does not prove that a server was contacted, that a returned value is true, or that a control claim belongs to anyone.
LOCAL CALIBRATION BENCHhttps://2b9t.org/schemas/observation/v2
Inspect an observation record
Paste one JSON object. This page checks it in your browser against the documented v2 shape; it does not send, retain, publish, or endorse the record.
SCHEMA / V2
Required field rail
01schemaId
02recordId
03publicationState
04subject
05observedAt
06observation
07sources
08ownershipAssertion
09lastmod
Extra fields
Rejected at their exact path
Sources
At least one attributable source
Edition
The one protocol family spoken
Control claims
Evidence-source reference required
Published records
Dated observation required
Read the complete machine contract
{
"schemaId": "https://2b9t.org/schemas/observation/v2",
"schemaVersion": 2,
"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"
],
"editions": [
"minecraft-java",
"minecraft-bedrock"
],
"editionRule": "edition names the status-protocol family the observation spoke; crossplay is never a record value",
"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.
Record IDEndpointEditionObserved atSource countPublication state
0 attributable records.No live feed is connected · no observation has been published in either edition · examples are excluded
direct observationserver responseevidence-backed claim
Record cross-section
Three boundaries stay visible
Each layer answers a different question. Combining them into one unlabeled “server fact” would erase where the claim came from.
SCHEMA V2 · FIELD BOUNDARIESNO PUBLISHED SPECIMEN
01
Direct observation
A dated result from a documented method. Without an observation time and traceable source, it cannot publish as measured fact.
02
Server response
Version, protocol, and similar endpoint-returned fields stay labeled as a response from that endpoint — in the one Java or Bedrock edition the probe spoke — not as a census.
03
Control assertion
A narrow claim must reference dated evidence in the same record. It never becomes a quality signal, publisher relation, or grouping label.