Return the effective receipt across all types — the latest one, preferring synthetic when it's later than real.
Return the effective (real or synthetic, whichever is later) receipt for the given receipt type.
Return either the real or the synthetic receipt for the given receipt type.
Set the real or synthetic receipt for the given receipt type. Preserves the invariant that synthetic only exists if it's strictly later than real.
The per-user storage of receipts, keyed by receipt type.
For each receipt type we hold an optional real and synthetic receipt. The invariant is: synthetic is only set if it's strictly later than real.