Declined Offer Receipt Docket / 未采纳报价回执案卷

Declined Offer Receipt Docket is the card that appears when the player resolves a contested desk choice but the unchosen offers still have teeth.

It exists because many Storyteller branches now correctly produce relief and cost. The remaining exploit is subtler: a replay can show the selected branch while losing the rejected sponsor offer, archive lien, fan oxygen demand, public receipt, or schedule claim that made the choice meaningful. This docket makes the table of live offers an in-world object.

The card does not log every menu option. It records only offers made by factions, desks, claimants, handlers, route assets, or proof holders that would have changed later play if accepted.

Exact runtime object and local authority

game-content/storyteller/cards/declined-offer-receipt-docket.json5 implements storyteller.card.declined_offer_receipt_docket.v1.

Its authority is local and exact:

localAuthorityOnly: true
authorityBoundary:
  tracksPreselectionMaterialOfferContinuityOnly: true
  requiresFutureReaderForMaterialDeclinedOffer: true
  preservesSelectedAndDeclinedOfferScopes: true
  grantsConsent: false
  grantsWaiver: false
  grantsSettlement: false
  grantsRouteClearance: false
  grantsArchiveRelease: false
  grantsProofTruth: false
  grantsSponsorAuthority: false
  grantsFanAuthority: false
  grantsInspectorAuthority: false
  grantsEditorAuthority: false
  grantsUniversalBroadcastAuthority: false

The docket preserves material offer continuity at selection-time. It does not authorize later reuse; that distinct surface belongs to Declined Offer Afteruse Receipt.

When this card enters

Add or update this card when all of the following are true:

entry_state:
  trigger_kind: state_pressure
  contested_surface_present: true
  offered_choice_count_min: 2
  offers_have_distinct_relief_and_cost: true
  selected_offer_present: true
  declined_offer_can_mutate_future_play: true
  future_reader_or_route_present: true
  no_fixed_turn_trigger: true

Valid contested surfaces include oxygen settlement, schedule preemption, public contrition, archive custody, route-asset release, management compression, faction commitment, scar convergence, proof carryover, or equivalent.

Required card fields

declined_offer_receipt_docket:
  card: storyteller.card.declined_offer_receipt_docket.v1
  contested_surface_id: <ledger_or_route_or_proof_or_slot_id>
  source_storyline_or_mechanic: oxygen_claim_exchange | schedule_preemption | management_compression | faction_commitment | scar_convergence | route_asset_custody | equivalent
  offer_set_id: <stable id>
  selected_offer_id: <offer id>
  selected_offer_effect:
    relief: <counter_or_state_delta>
    cost: <counter_or_state_delta>
    future_route_effect: <effect>
  declined_offers:
    - offer_id: <stable id>
      offered_by: sponsor | fan_public | archive | inspector | editor | artist | pirate | schedule_board | management | handler | route_asset | equivalent
      proposed_relief: <what the offer would have improved>
      demanded_control_or_cost: <what the offer demanded>
      proof_or_collateral: <receipt | lien | seal | queue | checksum | slot | handler | explicit_absence>
      why_declined: incompatible_with_selected | no_proof | too_much_capture | public_harm | consent_violation | schedule_loss | oxygen_debt | archive_debt | equivalent
      receipt_status: acknowledged | deferred | countercredited | published | voided | ignored
      future_reader: <route_or_desk_or_claimant>
      afterbid_risk: hostile_afterbid | coalition_offer | public_objection | sponsor_retaliation | archive_freeze | schedule_surcharge | recovery_only | none

Offer families

Offer familyWhat it usually relievesWhat the declined receipt must preserve
Sponsor settlementstop-loss, slot pressure, budget straindemanded wording, capture, future correction cost, public distrust
Fan oxygen/public receiptlegitimacy, fan balance, public griefsponsor retaliation, witness exposure, schedule occupation, archive pressure
Archive or inspector liencustody clarity, admissibility, false-owner riskaudience churn, schedule delay, bureau favor debt, fan resentment
Schedule slot claimencounter availability, lawful airing, route debutdisplaced route state, hostile claimant, recovery-only window
Edit or checksum offercontinuity, voice legibility, drift controlsource ambiguity, edit debt, proof quarantine, public distrust
Management clean-report offermetric relief, license relief, sponsor confidencefalse-clean debt, hidden scar, future route surcharge
Pirate/public breachhidden claim visibility, public pressurerelay custody risk, inspection heat, sponsor retaliation

Play affordance

The card should make at least three actions visible after the main branch resolves:

  1. acknowledge a declined offer with a receipt and pay small future cost;
  2. defer or countercredit a declined offer so it becomes a future reader instead of a hostile default;
  3. void a declined offer with proof, or choose ignore_afterbid and exclusively arm the afterbid, coalition, or recovery-only default gate.

Counter surfaces

Expected deltas include:

  • declined_offer_pressure
  • future_route_cost
  • sponsor_stop_loss_pressure
  • contract_capture
  • fan_oxygen_resentment
  • public_receipt_legitimacy
  • public_receipt_distrust
  • archive_debt
  • archive_signature_legitimacy
  • inspection_heat
  • schedule_pressure
  • off_slot_debt
  • route_asset_pressure
  • handler_burden
  • coalition_pressure
  • recovery_only_window

Non-goals

  • Not a UI choice log.
  • Not a generic reputation tracker.
  • Not a dashboard or test-harness page.
  • Not a fixed-turn callback.
  • Not valid if the declined offer cannot affect a later route, counter, claimant, or reader.