OPEN SCHEMA · 1.0.0
Observation Session
Schema.
Machine-readable JSON Schema with human-readable field guidance, for export validation, research ingestion and independent implementations.
01 / ROOT
Root fields.
schemaVersionstring · requiredSemantic structure version, currently 1.0.0.idUUID · requiredStable Session identifier.stateenum · requireddraft, active or completed.observedAtobject · requiredEvent start, optional end and time-zone offset.createdAt / updatedAtdate-time · requiredRecord lifecycle time, separate from observed event time.02 / EVIDENCE
Four evidence layers.
evidence is required and contains four arrays: raw, statements, measurements and machineNotes. An array may be empty, but one provenance type must never be placed in another layer.
rawid, kind, capturedAt, hashOriginal media and derived copies are separate items.statementsid, recordedAt, textPreserves observer wording and language.measurementsid, kind, value, unitIncludes sample time, accuracy and source.machineNotesid, analyzer, version, textMust not assert a confirmed identity.03 / DIRECTION TRACK
Direction samples.
Each entry in directionTracks records its north reference, samples and device-attitude context. Every sample requires time, 0–360° azimuth and −90–90° elevation. Uncertainty fields are expressed in degrees.
"samples": [{
"recordedAt": "2026-07-10T21:47:22+08:00",
"azimuthDegrees": 222.4,
"elevationDegrees": 18.1,
"azimuthUncertaintyDegrees": 2.4
}]04 / PRIVACY
Location and publication boundaries.
privacy.locationMode is hidden, approximate or precise. Approximate locations require precisionMeters; hidden locations should not contain coordinates. publication describes only the user-confirmed public copy and fields, never mutating the private Session.
05 / VALIDATION
Validation & compatibility.
The schema uses JSON Schema Draft 2020-12. Unknown root properties are rejected to expose typos early; evidence items include an extensions object for namespaced extensions. Patch versions clarify compatibly, new optional fields increment the minor version, and breaking changes increment the major version.