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.

FieldTypeDescription
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.

ArrayKey fieldsBoundary
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.

A SHA-256 hash checks content consistency; it does not prove media truth, capture time or source identity. Passing schema validation does not mean a record is verified.