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