Signal Escrow Counteroffer Lens
This lens checks that a sponsor, editor, archive desk, or public reader cannot spend a contested signal escrow as clean consent after a counteroffer appears. The player must see the source signal, escrow holder, counteroffer reader, harmed or displaced reader, proof bridge, selected posture, after-state, counter movement, and future route effect.
Entry Oracle
entry_state:
trigger_kind: state_pressure
source_signal_escrow_visible: true
escrow_holder_visible: true
counteroffer_reader_visible: true
requested_future_use_visible: true
harmed_or_displaced_reader_visible_or_explicit_absence: true
proof_bridge_or_explicit_absence_visible: true
future_reader_or_route_consumes_escrow_state: true
player_can_accept_limit_bridge_split_quarantine_invert_or_default: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_signal_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if entry is driven by a fixed turn, fixed day/week, raw signal count, dashboard state, lens health, or a counteroffer without a future reader trying to consume the escrow.
Checks
1. Docket Preserves Signal, Counteroffer, And Future Reader
signal_escrow_counteroffer_docket:
source_signal_id: required
escrow_holder: required
counteroffer_reader: required
requested_future_use: required
harmed_or_displaced_reader: required
proof_bridge_or_explicit_absence: required
selected_counteroffer_posture: required
escrow_state_after: required
future_reader_or_route_effect: required
counter_deltas: required2. Review Branches Diverge
Required branch families:
accept_public_counteroffer;limit_sponsor_use;attach_archive_bridge;split_signal_readers;quarantine_counteroffer;invert_to_artist_option;false_signal_counteroffer_default.
Each branch must expose a future route effect and at least three named counter deltas; no branch may declare the signal universally clean.
3. Default Mutates Future Play
false_signal_counteroffer_default:
false_clean_signal_counteroffer: true
source_signal_or_absence: required
hidden_or_overbroad_signal_scope: required
capturing_reader_or_route: required
harmed_or_displaced_reader: required
escrow_state_after: required
future_reader_effect: required
counter_deltas_min: 3
durable_mutation: true4. Replay Evidence Shape
The replay evidence is a game-cli export from a lens-scoped durable save named lens-storyteller-lens-signal-escrow-counteroffer-v1-*, with seed, action history, state snapshot provenance, and one action resolving storyteller.rite.signal_escrow_counteroffer_review.v1.