Each line is canonical-JSON encoded ReceiptV1 (see Schemas) terminated by \n. Constraints:
  • One writer per agent.
  • Append-only.
  • nonce gapless from 0.
  • prev_receipt_hash[N] = receipt_hash[N-1]; prev_receipt_hash[0] = null.
  • receipt_hash = sha256(canonicalJson(receipt without receipt_hash)).