Declined Offer Reconciliation / 未采纳报价复核

Declined Offer Reconciliation is the assignable rite for deciding what happens to the offers the producer did not take.

It is used after a state-pressure choice resolves and at least one declined offer still has a future reader. The rite prevents a selected branch from erasing the alternative sponsor, fan, archive, schedule, public, edit, or management claim that made the decision costly.

Exact runtime branch oracle

game-content/storyteller/rites/declined-offer-reconciliation.json5 implements storyteller.rite.declined_offer_reconciliation.v1 with exactly these six option/state/future triples:

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

The first five branches resolve declined_offer_receipts.reconciliation_resolved without arming the default. Only ignore_afterbid sets declined_offer_receipts.state.declined_offer_ignored_pending_afterbid and the four-part 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.

Required inputs

rite: storyteller.rite.declined_offer_reconciliation.v1
requires:
  docket: storyteller.card.declined_offer_receipt_docket.v1
  contested_surface_id: <ledger_or_route_or_proof_or_slot_id>
  selected_offer_id: <offer id>
  declined_offer_id: <offer id>
  offered_by: sponsor | fan_public | archive | inspector | editor | artist | pirate | schedule_board | management | handler | route_asset | equivalent
  proposed_relief: <what the declined offer would have improved>
  demanded_control_or_cost: <what the declined offer demanded>
  why_declined: incompatible_with_selected | no_proof | too_much_capture | public_harm | consent_violation | schedule_loss | oxygen_debt | archive_debt | equivalent
  handler_or_absence: shen_luo | yu_lan | han_yanshuang | baiya | inspector | archive_clerk | fan_coordinator | schedule_clerk | explicit_absence | equivalent
  proof_or_counterweight_or_absence: public_receipt | sponsor_clause | archive_seal | fan_queue | edit_checksum | route_asset | schedule_receipt | explicit_absence | equivalent
  future_reader: <route_or_desk_or_claimant>

The rite fails if the declined offer is only noted as flavor. It must name who offered it, what relief it would have given, what it demanded, why it was rejected, who records the rejection, and which future reader can use or punish that receipt.

Branch families

Branch A — Acknowledge with receipt

The player records the declined offer as valid but not chosen.

Expected outcome:

receipt_status: acknowledged
relief: hostile_afterbid_risk_down | future_reader_clarity_up
cost: future_route_cost_up | claimant_pressure_up | handler_burden_up
future_route_effect: costlier_but_open | reader_requires_receipt

Branch B — Defer with dated obligation

The player delays the declined offer into a named future reader.

Expected outcome:

receipt_status: deferred
relief: current_surface_stabilized | immediate_conflict_down
cost: schedule_pressure_up | future_claim_cost_up | bureau_or_sponsor_or_fan_debt_up
future_route_effect: deferred_hearing_required | route_costlier

Branch C — Countercredit

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

Expected outcome:

receipt_status: countercredited
relief: claimant_hostility_down | coalition_pressure_down
cost: route_narrowness_up | proof_debt_up | public_or_archive_ambiguity_up
future_route_effect: narrow_route_open | split_reader_required

Branch D — Publish the offer table

The player makes the selected and declined offers public, lawful, fan-facing, or archive-visible.

Expected outcome:

receipt_status: published
relief: public_receipt_legitimacy_up | private_capture_down
cost: sponsor_stop_loss_pressure_up | inspection_heat_up | witness_or_handler_exposure_up
future_route_effect: public_table_required | retaliation_armed

Branch E — Void the offer with proof

The player proves the declined offer was invalid, expired, fraudulent, impossible, or unsupported.

Expected outcome:

receipt_status: voided
relief: afterbid_risk_down | false_claim_down
cost: proof_spent | archive_or_edit_debt_up | claimant_hostility_up
future_route_effect: void_cited_by_future_reader | hostile_claim_possible

Branch F — Ignore and let afterbid form

The player hides, forgets, or underfills the declined offer receipt.

Expected outcome:

receipt_status: ignored
emitted_or_armed_event: storyteller.event.unanswered_offer_afterbid.v1
cost: hostile_afterbid_up | coalition_pressure_up | future_route_cost_up
future_route_effect: blocked | costlier | hostile | sponsor_only | lawful_only | public_only | recovery_only

Resolution contract

Every resolution must mutate at least three surfaces:

  1. one relief surface for the current route or future reader clarity;
  2. one cost surface created by the declined offer;
  3. one future route, claimant, reader, or custody state.

Valid surfaces include:

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

Replay evidence shape

rite: storyteller.rite.declined_offer_reconciliation.v1
session_id: lens-declined-offer-receipts-v1-<timestamp>
seed: <deterministic-seed>
assignment:
  docket: storyteller.card.declined_offer_receipt_docket.v1
  contested_surface_id: <id>
  selected_offer_id: <id>
  declined_offer_id: <id>
  offered_by: <faction_or_actor>
  proposed_relief: <relief>
  demanded_control_or_cost: <cost>
  why_declined: <reason>
  handler_or_absence: <handler_or_absence>
  proof_or_counterweight_or_absence: <proof_or_absence>
  future_reader: <reader>
branch_result:
  selected_branch: acknowledge_receipt | defer_obligation | countercredit_offer | publish_offer_table | void_offer_with_proof | ignore_afterbid
  receipt_status_after: <status>
  event_seen_or_armed: storyteller.event.unanswered_offer_afterbid.v1 | none
  future_route_effect: <effect>
  counter_deltas: {}

Non-goals

  • Not a generic aftermath meeting.
  • Not a fixed upkeep action.
  • Not a UI option audit.
  • Not valid if the selected offer is recorded but the declined offer has no future reader.
  • Not valid if famous handlers can erase declined claims without proof, cost, and future effect.