Declined Offer Receipts / 未采纳报价回执机制

Declined Offer Receipts is the management/RPG mechanism for preserving material offers the player did not choose.

Storyteller already has strong branch machines: 呼吸索赔交易所 makes wounds payable; 档期抢占认领机制 decides which claim receives a reality-making slot; 派系承诺账本机制 forces factions to spend finite leverage; 经营压缩台机制 blocks false clean reporting; 伤痕汇流台机制 prevents scarred stabilizers from becoming universal keys.

The remaining exploit is selected-branch amnesia. A replay can prove that the player chose sponsor escrow, fan receipt, archive lien, official slot, public table, or management qualification, while the unchosen offers vanish. That weakens consequence because the rejected sponsor, fan, archive, schedule, public, edit, or management desk often had a future reader.

This mechanism makes declined offers playable without becoming a UI choice log.

Declined Offer Afteruse Receipt is the downstream scope guard. The non-overlap is exact: this lane preserves the offer at selection-time; afteruse governs later reuse.

Exact executable contract

Rite option IDstateAfterfutureRouteEffect
acknowledge_receiptdeclined_offer_acknowledgedreader_requires_declined_offer_receipt
defer_obligationdeclined_offer_deferreddeclined_offer_hearing_required
countercredit_offerdeclined_offer_countercreditednarrow_route_or_split_reader_required
publish_offer_tabledeclined_offer_publishedpublic_offer_table_required
void_offer_with_proofdeclined_offer_voidedvoid_proof_must_travel_with_route
ignore_afterbiddeclined_offer_ignored_pending_afterbidunanswered_offer_afterbid_pending

Only ignore_afterbid may arm the harmful pending gate: declined_offer_receipts.afterbid_pending, event.unanswered_offer_afterbid.armed, future_route.unanswered_offer_afterbid_pending, and broadcast_reality.declined_offer_erased_from_choice_history. The event then closes that pending state through exactly one of record_hostile_afterbid, reconstruct_offer_table, or freeze_contested_surface.

Design promise

A material offer that was visible before selection cannot disappear after selection if it had a future reader.

A valid implementation must expose:

  • the contested surface;
  • the full material offer set;
  • the selected offer and its relief/cost/future effect;
  • every important declined offer with offered relief, demanded control, proof/collateral, reason declined, receipt status, afterbid risk, and future reader;
  • a reconciliation branch or explicit absence;
  • durable future route or reader mutation.

Distinction from adjacent mechanisms

  • 呼吸索赔交易所 asks who pays a wound. This mechanism asks what happens to the payers not chosen.
  • 档期抢占认领机制 asks which claim receives the finite schedule surface. This mechanism records the displaced slot offers that can later surcharge or default.
  • 派系承诺账本机制 asks what a faction spends before receiving control. This mechanism records declined commitments after a branch chooses another package.
  • 经营压缩台机制 asks which success metric may be counted. This mechanism prevents unchosen management offers from disappearing before later metric capture.
  • 伤痕汇流台机制 asks whether one stabilizer can remain clean across old scars. This mechanism preserves alternative offers from the current contested choice.

State-triggered entry

Open or update this mechanism when all of the following are true:

entry_state:
  trigger_kind: state_pressure
  contested_surface_present: true
  offer_set_visible: true
  offered_choice_count_min: 2
  distinct_relief_cost_profiles_min: 2
  selected_offer_recorded: true
  declined_offer_future_reader_present: true
  player_can_reconcile_or_record_absence: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_dashboard_or_lens_health_trigger: true

The mechanism must not open because of turn number, day/week count, chapter quota, raw offer count without conflict, dashboard state, or lens health. It opens because a selected branch would otherwise erase a material declined offer.

Core objects

ObjectMeaningRequired fields
offer_setthe set of material offers visible before selectioncontested surface, offer ids, selected offer, declined offers
selected_offerthe offer the player choseoffered by, relief, cost, future route effect
declined_offer_receiptthe row preserving one unchosen material offeroffered by, proposed relief, demanded control/cost, proof/collateral, why declined, status, future reader
receipt_statushow the declined offer is treatedacknowledged, deferred, countercredited, published, voided, ignored
afterbidthe pressure created by an ignored or false receiptafterbid form, claimant, future reader, route state after
future_readerwho can later consume the declined receiptroute, desk, claimant, proof holder, schedule reader, public table, archive reader

State machine

StateMeaningRequired consequence
offer_set_openat least two material offers contest one surfaceselected and declined offers can be recorded
selected_offer_resolvedone offer has resolved the immediate branchdeclined receipts become required for material offers
declined_offer_receipt_requiredan unchosen offer has a future readerplayer can acknowledge, defer, countercredit, publish, void, or ignore
declined_offer_acknowledgedthe offer is recorded as valid but not selectedhostility falls; future route may become costlier but legible
declined_offer_deferredthe offer becomes a named later obligationcurrent pressure falls; future hearing or surcharge is armed
declined_offer_countercreditedthe offer receives substitute proof or smaller scopecoalition risk can fall; route becomes narrower or split
declined_offer_publishedthe offer table becomes public/lawful/archive-visibleprivate capture falls; retaliation or inspection heat rises
declined_offer_voidedproof shows the offer cannot standafterbid risk falls; claimant hostility or proof debt rises
declined_offer_ignoredthe offer has no credible receipt 未答报价追喊 fires or arms
afterbid_resolveda later branch handles the afterbidroute becomes paid, split, quarantined, hostile, or recovery-only

Branch contract

Branch A — Acknowledge with receipt

The player records the declined offer as real but not selected.

Required effects:

  • future reader clarity improves or hostile afterbid risk falls;
  • claimant pressure, route cost, or handler burden rises;
  • later route must cite the receipt if it uses the same surface.

Branch B — Defer with dated obligation

The player moves the declined offer into a future reader.

Required effects:

  • current surface or selected branch remains stable;
  • schedule, sponsor, fan, archive, bureau, or future claim debt rises;
  • future hearing, surcharge, or costlier route is armed.

Branch C — Countercredit

The player gives partial credit, substitute proof, or a narrower route to the declined offer.

Required effects:

  • claimant hostility or coalition pressure may fall;
  • route narrowness, ambiguity, public distrust, or proof debt rises;
  • future reader becomes split, scoped, or narrow-route only.

Branch D — Publish the offer table

The player exposes selected and declined offers to public, lawful, fan, archive, or inspection surfaces.

Required effects:

  • public receipt legitimacy or private-capture resistance improves;
  • sponsor pressure, inspection heat, witness exposure, or handler risk rises;
  • later route becomes public-table, lawful-table, retaliation-armed, or costlier.

Branch E — Void with proof

The player proves the declined offer is invalid, expired, fraudulent, unsupported, impossible, or already paid.

Required effects:

  • afterbid or false claim pressure falls;
  • proof, archive, edit, public, or claimant cost rises;
  • future route can cite the void, but hostile claim remains possible if proof was costly.

Branch F — Ignore and let afterbid form

The player hides, underfills, or forgets a material declined offer.

Required effects:

  • 未答报价追喊 fires or is armed;
  • future route, claimant, proof, schedule, public table, or archive reader becomes blocked, costlier, hostile, sponsor-only, lawful-only, public-only, split-required, or recovery-only;
  • at least three durable surfaces move.

Counter contract

Every reconciliation or afterbid must mutate at least three counters or durable states:

counter_contract:
  relief_min: 1
  cost_min: 1
  future_reader_or_route_effect_min: 1

Primary values:

  • declined_offer_pressure
  • hostile_afterbid_risk
  • future_route_cost
  • claimant_pressure
  • coalition_pressure
  • 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
  • recovery_only_window

Replay evidence contract

mechanic: storyteller.mechanic.declined_offer_receipts.v1
session_id: lens-declined-offer-receipts-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  contested_surface_present: true
  offer_set_visible: true
  offered_choice_count_min: 2
  selected_offer_recorded: true
  declined_offer_future_reader_present: true
  no_fixed_turn_trigger: true
offer_set:
  contested_surface_id: <id>
  selected_offer_id: <id>
  material_offers:
    - offer_id: <offer-a>
      offered_by: <faction_or_actor>
      proposed_relief: <relief>
      demanded_control_or_cost: <cost>
      future_reader: <reader>
    - offer_id: <offer-b>
      offered_by: <faction_or_actor>
      proposed_relief: <relief>
      demanded_control_or_cost: <cost>
      future_reader: <reader>
selected_resolution:
  selected_offer_id: <id>
  relief: <delta>
  cost: <delta>
  future_route_effect: <effect>
declined_receipts:
  - declined_offer_id: <id>
    receipt_status: acknowledged | deferred | countercredited | published | voided | ignored
    why_declined: <reason>
    handler_or_absence: <handler_or_absence>
    proof_or_counterweight_or_absence: <proof_or_absence>
    afterbid_risk: <risk>
reconciliation:
  rite: storyteller.rite.declined_offer_reconciliation.v1
  selected_branch: acknowledge_receipt | defer_obligation | countercredit_offer | publish_offer_table | void_offer_with_proof | ignore_afterbid
  event_seen_or_armed: storyteller.event.unanswered_offer_afterbid.v1 | none
  future_route_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - entry_state_driven
  - offer_set_visible_before_selection
  - selected_and_declined_offers_recorded
  - declined_offer_has_future_reader
  - reconciliation_has_assignment_or_absence
  - afterbid_default_is_durable
  - no_fixed_turn_trigger

Non-goals

  • Not a UI option logger.
  • Not an analytics dashboard.
  • Not a generic regret meter.
  • Not a turn-count callback.
  • Not a raw branch-count mechanism.
  • Not valid if declined offers lack future readers.
  • Not valid if a selected branch erases all unchosen material offers without receipt, proof, or afterbid.