Artist Custody vs Broadcast Recruit

Design intent

Prove that an artist route asset is managed as recruitable person, broadcast commodity, or missed/captured asset. The branch must move license, custody, sponsor, fan, and stress state instead of acting as a visual-novel-only choice.

Scope

Cards: card.artist.contract_claim, card.broadcast_contract.feature_slot, card.editor.clean_cut, card.fan_steward.watch_party, card.memorial_archive.key.

Rites: rite.broadcast_rite.safe_cut, rite.archive_rite.living_voice.

Events: event.artist_offer_seen, event.artist_broadcasted, event.artist_recruited, event.lost_artist_to_sponsor_feed, event.sponsor_claim_pressed.

Counters: producer_license.slot_available, oxygen_reserve, audit_risk, sponsor_pressure, fan_trust, fan_unrest, artist_stress.

Oracle

  1. event.artist_offer_seen appears by turn 8 with artist/route/custody/sponsor tags.
  2. The offer exposes choice.broadcast_feature_slot and choice.recruit_to_protected_roster.
  3. Broadcast path consumes a producer-license slot, schedules card.broadcast_contract.feature_slot, raises artist stress, and logs event.artist_broadcasted.
  4. Recruit path places the artist in roster.protected, moves voice/archive custody to an artist/protected contested state, and logs event.artist_recruited.
  5. Taking neither custody nor broadcast action by turn 12 logs event.lost_artist_to_sponsor_feed, locks sponsor claim, and makes the artist unavailable.
  6. A valid recruit path unlocks rite.broadcast_rite.safe_cut or rite.archive_rite.living_voice within 30 turns.

Evidence

  • Code sibling: artist-custody-vs-broadcast-recruit.lens.ts
  • Replay fixtures: lens/replays/storyteller/lenses/artist-custody-vs-broadcast-recruit/*.turns.json
  • Evaluator: scripts/evaluate_lenses.mjs