deny-receipt.hex was pinned to the superseded jcp/1 receipt profile (598 bytes)
while the reference gate seals jcp/2, which binds a payload_hash (677 bytes). The
gate is deterministic (three runs byte-identical) and the new envelope decodes to
every field receipt.json records, so this is a refresh, not a behaviour change.
The conformance test now seals the deny exactly as the README reproduces it and
requires the published bytes on every run, verifies them under the reference
steward against receipt.json, and requires any other key to fail. Falsified: the
old receipt back in the pack fails the byte check; a changed deny_reason in
receipt.json fails the decode check.
Co-Authored-By: Claude Opus 5.5 <[email protected]>