open-standards/map/spec/receipt.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

2.1 KiB

Map sub-spec — The receipt

Normative refinement of SPEC §6. Reference: map-receipt.

Every resolve/decode of a tile emits a signed energy receipt. Receipts seal as JCR-1 envelopes — the family's shared signed-receipt format (canonical det-CBOR + COSE_Sign1/EdDSA, alg = -8) — so a Map receipt verifies with the same tooling as a Joule Code, Sandbox, or JouleClaw receipt. The JCR-1 wire profile is "map/1".

1. Shape

Receipt = {
  cell: CellKey,            // rendered as its content id on the wire
  content_id: ContentId,    // the tile that closed the request
  tier: Tier,               // F0..F4 — the closing tier
  energy: { measured_uj: Option<u64>, estimated_uj: u64, provenance },
  sequence: u64,
  nonce: [u8; 8],
}

2. The provenance coupling (REQUIRED)

Provenance measured_uj Meaning
HwShunt required Read from a hardware energy interface (RAPL/SMC/shunt).
ModelBased optional Computed from a calibrated per-operation model.
Estimator forbidden A coarse constant; honestly flagged as not measured.

Receipt::seal validates this coupling before signing, so a dishonest receipt (HwShunt with no measured figure; Estimator carrying one) cannot be sealed (conformance C-neg). The spec never claims an accuracy the platform cannot deliver.

3. Reference estimator (non-normative)

Microjoules per resolved tile, ordered by tier — map_receipt::UJ_BY_TIER:

Tier µJ (order of magnitude)
F0 Cache 1 (picojoules)
F1 Base 1 000 (microjoules)
F2 Field 200 000 (sub-millijoules)
F3 Feature 5 000 000 (millijoules)
F4 Photoreal 2 000 000 000 (joules)

A session's total cost is the sum of its tile receipts. The standard is that the figure is reported and honestly tagged — not the constant. Conformance suite C5 pins receipt sealing, verification, and the signed core in ../conformance/v1/receipt_vectors.json.