The action is declared before it runs.
Who is acting, for whom, on what, and under which policy. Nothing executes without an attributable intent, and the intent fields travel into every receipt.
One exact byte form, then a hash.
The receipt body is canonicalised with RFC 8785, so two implementations in two languages produce the same bytes and the same SHA-256 digest.
Two signatures. Both must hold.
Ed25519 for today, ML-DSA-65 or ML-DSA-87 for the quantum era. In the hybrid suite, a missing, stripped or invalid leg fails verification. No "either one will do".
Each receipt points to the one before.
Receipts chain by content address and roll up into Merkle trees. Change one byte anywhere and the root changes.
The root is written to a public chain.
Roots are written to a public chain, so anyone can check inclusion without trusting DCS. Anchoring for the current release is in development.