Oxygen Reserve Gap Docket / 呼吸储备缺口案卷
Oxygen Reserve Gap Docket is the card that records the uncovered remainder after reserve provenance, priority, rebate, makegood, or haircut logic has made the available oxygen-like sources legible.
The card exists because 呼吸储备来源线 can prove which sources may be used, but a correct provenance result can still leave an obligation partly uncovered. That uncovered gap is not allowed to disappear into delay, sponsor covered, fans accepted, or reserve balanced.
Playable promise
A reserve gap must name its holder, reader scope, proof, burdened reader, and future route effect before the obligation can be treated as paid, closed, postponed, or converted to recovery-only.
Required fields
oxygen_reserve_gap_docket:
card: storyteller.card.oxygen_reserve_gap_docket.v1
gap_row_id: <stable row id>
source_provenance_row_id: <oxygen reserve provenance row id or explicit_absence>
source_obligation: sponsor_makegood | fan_refund | ward_air | public_receipt | recovery_air | route_asset_care | archive_lien | broadcast_stability | equivalent
obligation_state_before: unpaid | partially_paid | segregated_underfunded | sponsor_matched_short | opt_in_short | escrow_short | haircut_short | ringfenced_short | hidden_short | equivalent
usable_cover_sources:
- source_id: <stable source id>
source_kind: fan_oxygen_cell | sponsor_makegood | ward_air_reserve | archive_escrow | recovery_inventory | public_receipt_credit | route_asset_care | equivalent
source_scope_after: fan_only | sponsor_only | ward_only | archive_only | public_only | recovery_only | route_asset_only | lawful_only | split_required | equivalent
accepted_by_reader: <reader or explicit_absence>
uncovered_gap:
gap_kind: amount_short | scope_short | proof_short | mandate_short | care_short | timing_short | authority_short | explicit_absence
gap_visible_to: sponsor | fan_public | ward_reader | archive | lawful_reader | route_asset | producer_license | broadcast_reality | equivalent
gap_holder_before: unassigned | sponsor | producer_license | fan_public_queue | archive_escrow | route_asset | recovery_shelf | claimant | worker_carrier | explicit_absence
protected_reader: <reader or explicit_absence>
burdened_or_excluded_reader: <reader or explicit_absence>
proposed_assignment: sponsor_true_up | producer_underwrite | fan_public_queue_credit | archive_gap_escrow | route_asset_ration | recovery_conversion | split_gap | visible_block | gap_capture_default
proof_or_absence: invoice | public_receipt | audit_annex | reserve_trace | ringfence_seal | witness_oath | sponsor_clause | explicit_absence
result:
gap_state_after: assigned | queued | escrowed | rationed | converted | split_required | blocked | captured | false_closed | recovery_only | equivalent
future_reader_or_route_effect: <effect>
counter_deltas:
relief: []
cost: []
future: []Failure shape
The docket fails if it stores only a raw deficit, money owed, oxygen balance, or generic delay. The important data is who may cite the partial cover, who is still short, who carries that shortfall, and which future route must read the scar.
Non-goals
- Not a global economy ledger.
- Not a raw oxygen HP remainder.
- Not a replacement for reserve provenance or priority ranking.
- Not valid if an uncovered gap becomes clean closure without a holder.