Memorial Voice Permit resolves archive custody
Design intent
Prove that a dead or missing artist’s archived voice can become a playable schedule contract, not passive lore.
Affected objects
Cards: card.artist_archive.lio_aftervoice, card.claimant.mother_estate, card.claimant.sponsor_saintglass, card.editor.blackbox_cut, card.inspector.archive_notary, card.fan_cell.candle_queue.
Rites: rite.memorial_voice_permit, rite.archive_notary_hearing.
Events: event.memorial_permit_offered, event.claimant_dispute_opened, event.aftervoice_preview_leaks, event.memorial_broadcast_resolved, event.black_screen_unlicensed_aftervoice.
Counters: counter.schedule_slots_free, counter.archive_custody_dispute, counter.sponsor_claim, counter.fan_trust, counter.inspector_heat.
Oracle
Within 24 turns the replay must offer the permit, expose at least three branches, assign archive/claimant/witness cards, write exactly one final custody tag, release a schedule slot on success, and preserve a black-screen failure branch.
Progress metric
archiveCustodyProgress = 0..4: offer, archive/claimant assignment, witness/hearing, then custody resolution or black-screen failure.
Evidence
- Code sibling:
memorial-voice-permit.lens.ts - Replay fixture:
lens/replays/archive-voice-custody-memorial-permit.replay.json - Evaluator:
scripts/evaluate_lenses.mjs