Also called: JCS, RFC 8785, canonical JSON
In plain words
The same JSON object can be written many ways: keys in a different order, different spacing, 1.0 versus 1, different escapes. That's harmless when a program reads it and fatal when you hash or sign it, because every variation gives a different hash. Canonicalisation fixes one exact form. JCS, standardised as RFC 8785, does it for JSON: it sorts keys, uses no insignificant whitespace, and defines exact number and string formatting.
How QED Proof uses it
Everything QED Proof hashes or signs goes through JCS first: the receipt body before its Ed25519 signature, the claim before its claim_digest, and the leaf before it enters the Merkle log. Two parties in different languages, holding the same receipt, compute byte-identical input.
The spec is strict about it. Implementations must use a real RFC 8785 library, not re-serialise with sorted keys, because the two differ on numbers and escaping. Numbers must be integers within ±2^53, and floating-point values can't appear in a receipt at all, which closes a whole category of cross-language mismatches.
Example
The Proof of Agent Work repository ships byte-identical test vectors that are checked in CI: receipts at each trust level, tampered bodies, wrong keys and every verdict. An implementation that canonicalises slightly differently fails on them immediately.