ReceiptV1 (v: "0.1") or ReceiptV2 (v: "0.2") — see Receipt V1 and Receipt V2. Parse with parseReceiptAny when you need to accept both. Constraints:
- One writer per agent.
- Append-only.
noncegapless from 0.prev_receipt_hash[N] = receipt_hash[N-1];prev_receipt_hash[0] = null.receipt_hash = sha256(canonicalJson(receipt without receipt_hash)).
