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]>
44 lines
6 KiB
Markdown
44 lines
6 KiB
Markdown
# 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).
|