Recovery Inventory Ledger / 复原库存账本

Recovery Inventory Ledger is the visible card for scarce recovery capacity that several crisis systems want to spend at once.

It exists because Storyteller already has strong single-surface pressure: sponsor makegood, recovery discharge, claimant intake, live-floor load, cutroom priority, and management compression. The missing execution object is the shared ledger that says the same recovery resource cannot be spent twice. A correction slot, ward air bed, oxygen reserve, crew rest shift, archive proof window, edit checksum lane, sponsor makegood frame, public contrition minute, or custody handler must have an owner, a spend state, an excluded reader, and a future effect.

Creation trigger

Create or refresh this card only from state pressure:

creation_trigger:
  trigger_kind: state_pressure
  finite_recovery_inventory_present_or_absent: true
  competing_demands_min: 2
  shared_inventory_or_explicit_absence_visible: true
  future_readers_min: 2
  player_can_allocate_split_reserve_refuse_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true

The card must not appear because a numbered turn, fixed day/week interval, chapter quota, raw content count, dashboard status, or lens-health state arrives.

Required fields

card_id: storyteller.card.recovery_inventory_ledger.v1
source_pressure:
  source_surface: sponsor_makegood | recovery_ward | claimant_floor | live_floor | cutroom | fan_oxygen | archive_custody | management_compression | broadcast_reality | equivalent
  source_session_or_in_world_id: <session id or source row or explicit_absence>
finite_inventory_rows:
  - inventory_id: <stable row id>
    inventory_kind: correction_slot | ward_air | oxygen_reserve | crew_rest_shift | archive_proof_window | edit_checksum_lane | sponsor_makegood_frame | public_contrition_minute | custody_handler | security_lane | equivalent
    quantity_state: free | claimed | split | reserved | exhausted | absent | contested
    current_owner_or_absence: <reader/handler/faction/explicit_absence>
    protected_boundary_or_absence: <boundary or explicit_absence>
competing_demands:
  - demand_id: <stable demand id>
    requester: sponsor | fan_public | archive | inspector | artist_boundary | claimant | editor | management | schedule_board | live_floor | equivalent
    requested_inventory: <inventory_id or explicit_absence>
    demanded_use: makegood | recovery | correction | proof | floor_safety | public_receipt | oxygen_refund | route_unlock | metric_report | equivalent
    minimum_acceptance_surface: <surface>
    default_if_excluded: <named default>
future_readers:
  - reader_id: <reader>
    reader_type: public_reader | lawful_reader | sponsor_reader | artist_boundary_reader | editor_reader | management_reader | schedule_reader | route_asset_reader | equivalent
    reads_inventory_state_as: accepted | narrowed | hostile | blocked | captured | recovery_only | contradiction_pending | equivalent
allocation_state:
  selected_inventory_or_absence: <inventory id or explicit_absence>
  selected_primary_demand_or_absence: <demand id or explicit_absence>
  excluded_or_scoped_demand_or_absence: <demand id or explicit_absence>
  inventory_spend_state: allocated | split_escrow | reserved | borrowed_forward | quarantined | refused | captured_default | equivalent
  future_route_effect: <effect>

Inventory vocabulary

Inventory kindWhat it meansTypical scar when spent
correction_slota finite broadcast correction or repair surfacefuture correction costlier, schedule pressure, audience fatigue
ward_airprotected recovery air, bed, silence, or handler attentionbody boundary pressure, ward capacity loss, recovery-only route
oxygen_reservefan oxygen credit, refund reserve, or public-benefit bufferfan resentment, refund audit, public-only bridge
crew_rest_shiftreal floor or runner rest capacitycrew refusal risk, skeleton crew scar, live-floor narrowing
archive_proof_windowtime/authority to attach or verify source proofarchive debt, lawful-only gate, checksum requirement
edit_checksum_lanecutroom proof or continuity repair laneedit debt, source ambiguity, black-box dependency
sponsor_makegood_framereplacement commercial or package framecontract capture, public distrust, sponsor-only route
public_contrition_minuteapology, public ledger, or witness-facing airtimesponsor hostility, inspection heat, public distrust if captured
custody_handlernamed handler who can carry body/proof/claim safelyhandler burden, route asset pressure, safety boundary risk

State machine

Ledger stateMeaningRequired playable consequence
inventory_visibleat least one finite row is namedplayer can see who wants it and who loses if it is spent
contestedtwo or more demands target same row or mutually exclusive rowsallocation hearing or equivalent must be offered
allocatedone demand receives the inventoryexcluded demand changes state and future reader records cost
split_escrowinventory is divided or made conditionalambiguity, proof burden, and future reader cost rise
reservedinventory is protected for later readercurrent pressure worsens but route boundary is preserved
borrowed_forwardfuture inventory is pulled into current crisisfuture slot/oxygen/ward/proof state becomes costlier or blocked
quarantinedfalse-clean or unsafe spend is preventedimmediate relief narrows; future route is safer but slower
captured_defaultsomeone files the inventory firsthidden demand and excluded reader become durable scar

Assignment requirements

Any rite or event consuming this card must provide or explicitly lack:

  • source pressure and source id;
  • at least one finite inventory row or explicit absence;
  • at least two competing demands;
  • primary and excluded/scoped future readers;
  • current owner or explicit absence;
  • protected boundary or explicit absence;
  • selected spend state;
  • cost surface;
  • future route effect.

A sponsor payment, legal stamp, editor patch, management KPI, public sympathy surge, or high-status handler cannot replace the ledger. It must name what finite inventory was spent and who is excluded.

Counter payload

Every resolved ledger row should mutate at least three durable values: one relief, one cost, and one future reader or route effect.

Recommended payload values:

  • recovery_inventory_pressure
  • recovery_inventory_double_spend_risk
  • correction_slot_capacity
  • ward_air_capacity
  • fan_oxygen_reserve
  • crew_rest_capacity
  • archive_proof_window_integrity
  • edit_checksum_lane_integrity
  • sponsor_makegood_inventory
  • public_contrition_capacity
  • custody_handler_burden
  • schedule_pressure
  • inspection_heat
  • public_receipt_distrust
  • sponsor_stop_loss_pressure
  • route_recovery_cost

Non-goals

  • Not a global resource counter.
  • Not a turn upkeep phase.
  • Not a raw scarcity tax.
  • Not sponsor makegood alone.
  • Not recovery ward availability alone.
  • Not valid if one resource satisfies every future reader cleanly.
  • Not valid if absent inventory disappears instead of becoming a scar.