One JSON object that is, at the same time, a valid GeoJSON Feature, a STAC Item, and JSON-LD — so the same record renders in ordinary web mapping, crawls as a static catalogue, and resolves to a self-describing semantic resource. The format is the contribution; everything else is a reference implementation.
Never let the prior masquerade as data — what was attested and what was inferred must never be confused, anywhere in the system.
A modality-neutral core carries every attestation; per-type facets hang off it. The seam is enforced by the schema in CI, not left to good behaviour.
viewOf, about, occurredAt, describes), an uncertainty-bearing when (referent-time), provenance, a three-axis confidence, a typed status, a first-class rights block, and a stable URI.trace / testimony are evidence and must name a source; derived / synthetic are inference and must carry a PROV-O chain naming what produced them. A record can't wear an evidence label while carrying a generation chain.viewpoint, an OGC Moving Features pose trajectory (quaternion orientation in a glTF camera basis); a still is the degenerate single sample, a clip the full case.statement (rightsstatements.org) and SPDX license are kept separate, so an optimistic licence never sits over an In-Copyright status.The contract — every field, plus the conditional rules that enforce the seam. Validated in CI.
The versioned, dereferenceable vocabulary; each term maps to a definition with declared units and reference frames.
Why the format is shaped the way it is — the trade-offs, written down.
The full README: the idea, the standards it builds on, the commitments, and the scope.
Standards it extends, not reinvents: Linked Places · STAC · OGC Moving Features · rightsstatements.org + SPDX · PROV-O · EPSG:4326 + quaternions. The corpus itself is a static STAC catalogue, crawlable by relative rel links.