Underground Band Debut Contract Lens

Design intent

Verify that a schedule contract behaves as the core Storyteller object: permission, resource advance, countdown, route key, and survival pressure.

The test packet is centered on Underground Band Debut Plan, a naming-right contract in the corporate entertainment-stability system. It must be possible to recruit the underground performer as a company route asset, suppress the performer through a public confession/cancellation route, miss the deadline and receive a persistent blackout failure, or defect through a blackout-channel route asset.

Affected game objects

Cards:

  • card.storyteller.underground_band_debut_plan.v1
  • card.storyteller.underground_vocalist.v1
  • card.storyteller.family_medicine_contract.v1
  • card.storyteller.hacked_signal.v1
  • card.storyteller.corporate_debut_stage.v1

Rites:

  • rite.storyteller.on_screen_debut.v1

Events:

  • event.storyteller.blackout_underground_anthem.v1
  • event.storyteller.corporate_retaliation_notice.v1
  • encounter.storyteller.lower_zone_chorus.v1

Counters:

  • license_slots_total
  • license_slots_free
  • active_contracts
  • blackout_slots
  • corporate_trust
  • lower_zone_pressure
  • artist_trauma
  • route_asset_progress

Tags:

  • schedule_contract
  • naming_right
  • recruit
  • suppress
  • miss
  • blackout
  • route_asset.company_rebel_idol
  • route_asset.blackout_vocalist
  • suppressed.lower_zone_voice

Encounter / miss / recruit / suppress / route-asset / faction-pressure requirements

Within a 30-turn replay horizon:

  1. Encounter: the contract must be offered by turn 3 for the canonical seed.
  2. Recruit: choosing the company debut path must create route_asset.company_rebel_idol.
  3. Suppress: choosing confession/cancellation with valid suppress evidence must create suppressed.lower_zone_voice.
  4. Route asset: choosing blackout defection must create route_asset.blackout_vocalist.
  5. Miss: taking no valid rite by deadline must fold into event.storyteller.blackout_underground_anthem.v1.
  6. Faction pressure: every non-neutral outcome must change lower_zone_pressure.
  7. License pressure: assignment must consume a license slot; success must release it; miss must keep it occupied as a blackout slot.

Replay expectations

Canonical seed: storyteller-underground-debut-v1

Canonical session id prefix: lens.storyteller.underground_band_debut.v1/

Turn horizon: 30 turns.

Expected offered choices by turn 3:

  • offer.accept_underground_band_debut
  • offer.refuse_underground_band_debut

Expected route choices after accepting:

  • route.company_recruit
  • route.public_suppression
  • route.blackout_defection
  • route.delay_or_ignore

Progress metric

underground_debut_resolution_progress

Definition:

  • 0: contract not offered
  • 1: contract offered
  • 2: contract accepted and license slot consumed
  • 3: required rite slots visible
  • 4: valid route selected or deadline reached
  • 5: outcome applied and logged

The oracle passes only if progress reaches 5 in every scenario branch.

Evidence

  • Code sibling: underground-band-debut.lens.ts
  • Replay fixture: lens/replays/underground-band-debut.replay.json
  • Evaluator: scripts/evaluate_lenses.mjs