open-standards/map/README.md
Transaction Science ba1212361f Add aac, map, sandbox standards; catalog the standards family
Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:

- aac/    — communication cargo class: portable boards + a ten-level
            offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/    — geospatial cargo class: range-requestable signed tilesets +
            an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
            compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.

Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-07 17:04:36 -04:00

44 lines
6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Map
A carrier for place. Range-requestable, signed, energy-attributed, owned by no one.
Map is the **geospatial cargo class** of the Transaction Science substrate. Where [Smart Byte](../smart-byte/) carries value, [EOC](../eoc/) carries compute, and [Joule Code](../joule-code/) carries coding work, Map carries **place** — a region of the world at a position, an altitude, an instant, and a fidelity — as a content-addressed, signed **tile** with its energy cost intrinsic.
A tile is not an image and not an API response. It is a **vesicle** carrying exactly five things: identity (the BLAKE3 content address of its canonical serialization), a 4D cell key (where, how high, *when*, and how detailed), provenance (the signed tileset root it was published under, and the author key that signed it), cargo (the payload — terrain, a scalar/vector field, vector features, or 3D Gaussian splats), and a two-part joule cost (`measured + estimated`, with an honest provenance tag on every reading). Render requests resolve through an explicit **energy-tiered fidelity cascade** — cache, then a terrain base floor, then fields, then features, then photoreal splats — and return the highest tier present for the cell at or below the requested fidelity, **falling back to the floor, which is defined everywhere**. Graceful fallback is a property of the standard, not of an implementation.
The substrate is intentionally **ownerless**: no protocol-level token, permissive licensing on the spec text and reference code, and conformance vectors so any implementer can verify canonicity without a trust relationship with the authors. A conforming reader resolves a cell, verifies it against a signed manifest, renders it, and meters it — against static storage, with no contact with any single company's servers as a condition of operation. Transaction Science is one steward: it publishes the spec, ships a reference implementation, and operates commercial services (capture pipelines, hosted tilesets, a registry) around the substrate — not its proprietor.
## The doctrine
**The map is a file, not a service.** The durable layer of a mapping platform is not tile serving or per-load billing — both are commoditized and both expire. It is the **published, signed, dated file** that renders forever from dumb storage, measured in **joules per resolved cell**.
Three consequences, normative in [`SPEC.md`](SPEC.md):
1. **The cascade.** Every render request resolves through `F0:Cache → F1:Base → F2:Field → F3:Feature → F4:Photoreal` and returns the highest tier ≤ the requested fidelity that holds data for the cell, falling back to the F1 base floor — which is defined everywhere on the datum, so a covered region never fails to render.
2. **The receipt.** Every resolve/decode reports a two-part energy cost in microjoules — `measured + estimated` — with a `Provenance` tag (`HwShunt | ModelBased | Estimator`), sealed as a JCR-1 envelope (canonical det-CBOR + COSE_Sign1/EdDSA — the family's shared signed-receipt format).
3. **No capture.** No protocol token. A tileset is a single range-requestable file on dumb storage; reading it requires the bytes and a public key, nothing more. Revisions (a new forecast hour, a new AIRAC cycle) are signed, dated transitions over the manifest root — never in-place mutations.
## The 4D cell key
Map's one genuinely new primitive is the address. A tile is keyed by four orthogonal axes — S2 cell (horizontal, Hilbert-ordered), altitude band (signed; band 0 = datum), time bucket (half-open TAI interval; bucket 0 = atemporal), and within-tier LOD. The horizontal axis is what makes a tileset range-requestable; the **temporal axis is first-class**, which is exactly what 3D Tiles lacks and what weather and flight navigation require. A "map of Tuesday at 14:00Z" is a different, equally addressable region from the same place on Wednesday.
## Contents
- [`SPEC.md`](SPEC.md) — the normative specification (RFC 2119). The tile cargo, the 4D cell key, canonical serialization, the tileset + manifest, the cascade, and the receipt.
- [`spec/`](spec/) — sub-specifications: the cell key, the tileset container, the manifest + revision chain, and the receipt format.
- [`vocab/`](vocab/) — the controlled vocabulary and stable IRIs ([`LEXICON.md`](vocab/LEXICON.md)).
- [`conformance/`](conformance/) — signed wire vectors. An implementation is conformant if it round-trips these.
- [`map-rs/`](map-rs/) — the Rust reference library: the protocol crates (schema, cascade, receipt, conformance) plus the ported substrate (index, tiles, orbital, route). This is the lean library a third party implements against — not a renderer.
## Reference implementation and consumers
The Rust reference lives in [`map-rs/`](map-rs/). The **demonstrator pillar** is [maps.transaction.science](https://maps.transaction.science) — a WebGPU globe (Rust → WASM + native, on `wgpu`) that consumes `map-rs`: a satellite/terrain/weather basemap with live orbital, ADS-B, and AIS entity layers and an AI-native query surface. The demonstrator is a *demonstration of the standard*, the way the pillars demonstrate the other standards — not the product.
## Status
**v0.1.0 draft.** Specification core published (`SPEC.md` + `spec/`). Reference workspace `map-rs/`: `map-schema` (the 4D cell key, tile, tileset directory, manifest + revision, content addressing), `map-cascade` (the F0–F4 fidelity resolver with guaranteed F1 fallback), `map-receipt` (JCR-1 sealing, interoperable with the family's verifiers), and the `map-conformance` harness. The substrate crates (`map-index` from `joule-s2` + `joule-spatial3d`, `map-tiles` from `joule-tiles`, `map-orbital` from `joule-orbital`, `map-route` from `joule-maps`) are being ported from the existing engine; see [`ROADMAP.md`](ROADMAP.md). Not certified for primary navigation (see SPEC §9).
## Licence
- Reference code (`map-rs/`): Apache-2.0 — see [`LICENSE`](LICENSE).
- Specification text (`SPEC.md`, `spec/`, `vocab/`): CC-BY-4.0 — see [`LICENSE-SPEC`](LICENSE-SPEC).