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.v1card.storyteller.underground_vocalist.v1card.storyteller.family_medicine_contract.v1card.storyteller.hacked_signal.v1card.storyteller.corporate_debut_stage.v1
Rites:
rite.storyteller.on_screen_debut.v1
Events:
event.storyteller.blackout_underground_anthem.v1event.storyteller.corporate_retaliation_notice.v1encounter.storyteller.lower_zone_chorus.v1
Counters:
license_slots_totallicense_slots_freeactive_contractsblackout_slotscorporate_trustlower_zone_pressureartist_traumaroute_asset_progress
Tags:
schedule_contractnaming_rightrecruitsuppressmissblackoutroute_asset.company_rebel_idolroute_asset.blackout_vocalistsuppressed.lower_zone_voice
Encounter / miss / recruit / suppress / route-asset / faction-pressure requirements
Within a 30-turn replay horizon:
- Encounter: the contract must be offered by turn 3 for the canonical seed.
- Recruit: choosing the company debut path must create
route_asset.company_rebel_idol. - Suppress: choosing confession/cancellation with valid suppress evidence must create
suppressed.lower_zone_voice. - Route asset: choosing blackout defection must create
route_asset.blackout_vocalist. - Miss: taking no valid rite by deadline must fold into
event.storyteller.blackout_underground_anthem.v1. - Faction pressure: every non-neutral outcome must change
lower_zone_pressure. - 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_debutoffer.refuse_underground_band_debut
Expected route choices after accepting:
route.company_recruitroute.public_suppressionroute.blackout_defectionroute.delay_or_ignore
Progress metric
underground_debut_resolution_progress
Definition:
0: contract not offered1: contract offered2: contract accepted and license slot consumed3: required rite slots visible4: valid route selected or deadline reached5: 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