Records that an approver revoked a previously-signed grant. Replayed
from the journal, this short-circuits any subsequent consume attempt
against the revoked grant – “wrong actor / action / subject” fails
in scope, “grant revoked” fails in journal lookup.
Records that a specific Approval Grant was consumed by a specific
Action. One record per use; an approval with max_actions = 3 produces
up to three of these (subject to the journal’s max_uses enforcement).
A signed Merkle commitment to a contiguous range of journal records.
Lets a verifier check journal continuity (and, with a Hub-signed
variant, replay across machines) without reading every record.
Result of the replay check that verify ran. Carries the level that
was achieved plus enough context for printers / reports to render
“use 1/1” without re-resolving state.
What a JournalCheckpoint is committing to. The discriminator lets a
verifier physically distinguish a local-journal record from a
Hub/org checkpoint, so a checkpoint can never accidentally promote
replay-hub-org just because the on-disk shape happens to match.
Compute record_digest for an ApprovalUse. The record’s own
record_digest field is excluded from the hash so the value is
idempotent: digest_of(record_with_digest_cleared) == record.record_digest.
Verify the embedded Hub signature on a JournalCheckpoint. Does NOT
check coverage (covered_use_ids) – that’s the caller’s job, since
it depends on which uses the package contains.