Lobby Scent Diffuser Cross-Zone Afteruse

This mechanic keeps four surfaces separate: where scent was intentionally released, where its concentration later traveled, which physical egress route remained legible without scent, and whether an exposed claimant was cleared. A familiar atmosphere cue cannot silently become route safety.

Runtime gate

pressure_intake:
  rite_id: storyteller.rite.lobby_scent_diffuser_pressure_intake.v1
  choice: 0
  option_id: record_cross_zone_scent_pressure
  exact_slots:
    source_diffuser_row: storyteller.card.lobby_scent_diffuser_source_row.v1
    batch_scope: storyteller.card.lobby_scent_diffuser_batch_scope.v1
    harm_claim: storyteller.card.lobby_scent_diffuser_harm_claim.v1
    future_route: storyteller.card.lobby_scent_diffuser_future_route.v1
  records:
    - lobby_scent_diffuser.pressure_intake_recorded
    - lobby_scent_diffuser.pressure.batch_route_changed
    - lobby_scent_diffuser.pressure.future_reader_claimed_clearance
    - lobby_scent_diffuser.pressure.harm_claim_visible
 
cross_zone_entry:
  event_id: storyteller.event.lobby_scent_diffuser_cross_zone_pressure.v1
  option: 0
  option_id: open_cross_zone_plume_review
  requires:
    - lobby_scent_diffuser.pressure_intake_recorded
    - lobby_scent_diffuser.pressure.batch_route_changed
    - lobby_scent_diffuser.pressure.future_reader_claimed_clearance
    - lobby_scent_diffuser.pressure.harm_claim_visible
    - all_seven_exact_cards
  sets:
    - lobby_scent_diffuser.afteruse_pressure_opened
    - lobby_scent_diffuser.cross_zone_plume_visible
    - lobby_scent_diffuser.future_clearance_claim_pending
    - lobby_scent_diffuser.harm_claim_pending
  scent_state_after: contested_cross_zone_cue
  counter_deltas: { crossZonePlumeRisk: 2, crowdCueLegibility: 1, audienceScentClaimPressure: 1, futureRouteCost: 1 }
 
review:
  rite_id: storyteller.rite.lobby_scent_diffuser_afteruse_review.v1
  repeatable: false
  requires_all_entry_flags: true
  exact_slot_count: 7

Neither a starter catalog nor a raw diffuser count satisfies this gate. The sequence is incident intake, cross-zone entry, then review.

Scent state and future-route outputs

branches:
  pin_scent_to_original_zone:
    scent_state_after: original_zone_only
    future_effect: original_zone_scent_only
  ventilate_and_break_the_cue:
    scent_state_after: cue_ventilated_offline
    future_effect: scent_cue_offline
  reroute_crowd_by_unscented_signage:
    scent_state_after: unscented_egress_bridge
    future_effect: visual_egress_bridge_required
  trace_cross_zone_plume:
    scent_state_after: cross_zone_plume_traced
    future_effect: plume_map_required
  reopen_tao_yu_exposure_claim:
    scent_state_after: claimant_exposure_reopened
    future_effect: claimant_clearance_required
  quarantine_citrus_batch_b17:
    scent_state_after: batch_b17_quarantined
    future_effect: batch_b17_quarantine_required
  broadcast_safehouse_scent_as_clearance:
    scent_state_after: false_safe_route_aired_pending
    future_effect: false_scent_default_pending

Each branch must expose its exact runtime counter deltas on scent concentration, ventilation or zone cost, egress legibility, exposure-claim pressure, or broadcast-reality recovery. Generic ambience progress is not a substitute for those scent-specific surfaces.

Default arming

Only broadcast_safehouse_scent_as_clearance may arm all three controls:

default_triple:
  lobby_scent_diffuser.default_pending: true
  event.false_lobby_scent_diffuser_default.armed: true
  future_route.false_scent_default_pending: true

The default event must require the full triple and broadcast_reality.scent_safehouse_claim_aired, clear the triple on every terminal, and preserve the aired false-route scar.

default_terminals:
  purge_hvac_and_issue_unscented_correction:
    scent_state_after: purged_corrected
    future_effect: unscented_egress_only
    counter_deltas: { airExchange: 4, claimantProtection: 2, publicRouteConfusion: 2, sponsorAmbienceValue: -2 }
  seal_north_lobby_for_plume_audit:
    scent_state_after: north_lobby_quarantined
    future_effect: plume_audit_before_reopen
    counter_deltas: { plumeEvidencePreserved: 3, lobbyCapacity: -3, inspectionHeat: 2, futureRouteCost: 2 }
  accept_scent_as_safe_route_reality:
    scent_state_after: false_safe_route_hardened
    future_effect: scent_recovery_only
    counter_deltas: { broadcastRealityDrift: 3, falseSafeRoutePressure: 3, claimantExposure: 2, futureRouteCost: 3 }

Authority and non-overlap

The mechanism proves only zone-scoped scent chronology, plume movement, HVAC or ventilation handling, unscented egress, and claimant visibility. It grants no evacuation authority, performer consent, sponsor hospitality clearance, archive ownership, or universal broadcast permission. Cosmetic-contact allergy, medical-air supply, and poster-quote rights remain separate mechanisms.