Storyboard wireframe · debugging console0 / 104 human-confirmed104 registered composition-catalog cards, one fixture each, routed through StoryboardWireframe.vue's tier-1 dispatch — blank write areas, slot chips, interaction badges — each carrying its DSL + tag + teaser from card-spec.json. Every page resolves to a real catalog face (FALLBACK LAW, zero exceptions).
Open — covers5 cardsArchitect slot 1 — the story's cover page. No interaction; title + stakes.
1Atitle
1Bstakes line
Cinematic Title Revealc1_cinematic_title_reveal
1Atitle
the clue
1Blisten closely
Listening Postc1_listening_post
CASE FILETOP SECRET
1Atitle
1Bthe mission (subtitle)
Mission Coverc1_mission_cover
1A
sealed journal
Secret Journalc1_secret_journal
1Atitle
Animated Title Pulsec1_animated_title_pulse
Setting — set the scene5 cardsArchitect slot: setting. Narration on a scene; opener carries place + time + situation.
2A
Wide Shotc2_wide_shot
2A
The Roomc2_the_room
2A
Night Fallsc2_night_falls
2A
Crowd Scenec2_crowd_scene
Once upon a time…
2A
Once Upon a Timec2_once_upon_a_time
Kickoff — the problem arrives5 cardsArchitect slot: inciting / kickoff. The moment instability or a goal enters the story.
3A
3B
The Stranger Arrivesc2_the_stranger_arrives
!!!!!
3A
Uh-Oh!c2_uh_oh
2A
The Goalthe_goal
2A
Here's the Planhere_s_the_plan
????????
2A?
The Big Questionthe_big_question
Meet — characters & solo voice9 cardsArchitect slot: character intro + solo voice / address. Persona presentation; one speaker.
6A
6B
Character Cardc3_character_card
6A
Narrated Introc3_narrated_intro
6A
6B
Monologuec3_monologue
6A
🎙6B
Voice Introc3_voice_intro
6A
6B
Public Announcementpublic_announcement
6A
1
🎙6B
Voicemailvoicemail
6A
6B
The Storytellerthe_storyteller
LOG — DAY __
6A
Captain's Logcaptain_s_log
6A
Warning Messagewarning_message
Investigate — artifacts & evidence15 cardsArchitect slot: investigation. An examinable document or clue; entered via glue or a prior tap.
Dear Diary,Date: ______
6A
Diary Entryc7_diary_entry
6ADear __________,
6B
From, __________
A Letter Arrivesc7_a_letter_arrives
Welcome to _________!
the view
6A
6B
Postcardc7_postcard
THE DAILY NEWS
6A
the scene
6B
News Reportc7_news_report
CASE FILETOP SECRET
6AYour mission:
6B
Mission Briefingc7_mission_briefing
6A
Clue Notec7_clue_note
EVIDENCE #___
the specimen
6A
6B
Evidence Cardc7_evidence_card
✦ POEM ✦
6A
6B
Poem / Versec7_poem_verse
6A
The Sign Says…c7_the_sign_says
WANTED
Wanted for: ______________REWARD: ________
6A
6B
Wanted Posterc7_wanted_poster
STARTX
6A
The Mapc7_the_map
6A
6B
Social Media Profilesocial_media_profile
6A
6B
Wiki Articlewiki_article
6A
6B
Screenscreen
5A
5Ais the hidden poem / message
The Searchthe_search
Talk — conversations11 cardsArchitect slots: conversation + call deepener. Two voices on one scene; each requires two acts.
7A
7B
7C
A
B
Two-Shotc5_two_shot
7A
7B
?
7C
A
B
The Interviewc5_the_interview
A
7A
B
7B
...
Text Messagesc5_text_messages
9A
A
B
9B
Overheard…c17_overheard
7A
7B
!!
7C
Emergency Dispatchemergency_dispatch
7A
A
B
7B
?
7C
Courtroom Testimonycourtroom_testimony
7A
A
B
7B
7C
Campfire Conversationcampfire_conversation
7A
A
B
7B
!!
7C
!!
The Argumentthe_argument
7A
A
B
7B
!
7C
The Warningthe_warning
7A
7B
7CCall:
7DCall:
🎙7E
🎙7F
The Radio Callc14_the_radio_call
7A
7B
7CCall:
7DCall:
🎙7E
🎙7F
The Phone Callc14_the_phone_call
Tension — turns & pressure6 cardsArchitect slot: pressure / turn devices. The Parker/Stone BUT/THEREFORE engine; nearly all narration machinery.
7A
But: External Obstructionbut_external_obstruction
?
7A
The Calm Beforethe_calm_before
7A
The Ticking Clockthe_ticking_clock
7A
The Setbackthe_setback
7A
The Discoverythe_discovery
7A
A
B
7B
!!
The Call for Helpthe_call_for_help
Action — motion & payoffs10 cardsArchitect slot: action_payoff. The built thing runs or the reveal lands.
B
A
4A
The Chasec2_the_chase
4A
Running Entrancec2_running_entrance
Bz z z…
A
4A
Sneak Pastc2_sneak_past
!
4A
The Leapc2_the_leap
4A
Crash!c2_crash
4A
Action Burstc2_action_burst
the reveal
4A
The Big Revealc2_the_big_reveal
5A
A
B
VS
Face-Offc2_face_off
4A
It Opens!c2_it_opens
13A
SET IT IN MOTIONset_it_in_motion
Consequence — the changed world2 cardsArchitect slot: consequence. A CHANGED-WORLD scene — the visible result the action caused.
12A
The Aftermaththe_aftermath
12A
The Pricethe_price
Choose — choices, gates & quizzes10 cardsArchitect slots: decision (branch WEEK+ only) + gates (G4+/G5+) + hub checked tools.
7Athe dilemma
7B
7C
Fork in the Roadc14_fork_in_the_road
7A
7BPLAN A
7CPLAN B
Plan A / Plan Bc14_plan_a_plan_b
7A
7B
7C
Pick Onec14_pick_one
7Athe dilemma
7BYES!
7CNO WAY!
Should They…?c14_should_they
7Awhat waits behind them
7B7C
Two Doorsc14_two_doors
8A
8B
Locked Doorc16_locked_door
8A
open the way
Got Them All?c16_collect_gate
8A
8B
Crack the Codec16_crack_the_code
8A?
8B
Type the Answerc16_type_the_answer
10A?
10B
10C
10D
Quiz Pickc19_quiz_pick
Reflect — feelings & endings8 cardsArchitect slots: character intro (inner skin) + checked/hub ending arms. Interior voice + closure pages.
8A
8B
Thought Bubblec6_thought_bubble
8A
8B
Close-Up!c6_close_up
9A
THE END
The Endc18_the_end
?!
9A
TO BE CONTINUED…
Cliffhangerc18_cliffhanger
9A
YOU ESCAPED!
You Escaped!c18_you_escaped
9A
9B
GAME OVER
Game Overc18_game_over
9A
TRY AGAIN
Try Again?c18_try_again
The moral is…
9Athe takeaway
Moral of the Storyc18_moral_of_the_story
Explore — hubs, maps & transitions4 cardsArchitect slot: checked / hub. Navigation surfaces + the passage between places.
11A
Through the Doortransition_through_the_door
8A
8BWord 18CWord 2
Word Wallc12_word_wall
8A
8B
8C
Control Panelc12_control_panel
8A
Journey Mapc13_journey_map
Resolve — landings8 cardsArchitect slot: resolution. The inquiry or mission lands; arc growth heard.
THE ANSWER
14A
THE CLUE THAT PROVED IT
Case Closedcase_closed
WHAT WE FOUND14A
WHAT IT MEANS14B
The Debriefthe_debrief
14A
The Letter Backthe_letter_back
14A14B
Final Journal Entryfinal_journal_entry
14A
Problem Solvedproblem_solved
14A
14B
LATER…
Where Are They Now?where_are_they_now
!
THE ANSWER
14A
HOW WE KNOW
14B
The Answer Is…the_answer_is
7AOR7B
AB
What You Chosewhat_you_chose
Structure moments — input & capture2 cardsNon-story-slot mechanics: personalization name capture (overlay) + mad-lib word capture (builder).
name your hero
✎ overlay — the name field rides the character card
Type Your Names4_type_your_name
11A?
11B
Mad Libs4_mad_lib
Learner — speak & listen4 cardsOverlay cards gated on is_language_learner; claim a host 1-write page from any slot.
?
15A
15B
SAY YOUR LINElearner_say_your_line
15A
15B
15C
CALL AND RESPONSElearner_call_and_response
15A
15B
NAME THE PICTURElearner_name_the_picture
15A
WRITE WHAT YOU HEARlearner_write_what_you_hear
Overlays · what rides ON a host card6 kinds An eligible card (1 write, reveal_eligible — 44 cards) has an OBJECT spot and a TEXT spot; at most one occupant per page (written-unit ledger + grade interaction cap). Preview with the toolbar Overlay selector.
Obstruction RevealOBJECT + TEXT

A cover object sits ON the revealed write; tap (or drag, per loop) removes it. The revealed write is the page's ONE extra written unit.

evidence path — _build_evidence_path_instances / _recast_search_pages

LAWwritten-unit ledger: max 1 revealed written unit per page

addTextbox(clue, "the hidden clue");  writeText(clue, "[the revealed write]")
addImage(cover, "the cover")            // declared AFTER → renders on top
addOnClick(cover, trigger=once) -> then(addFade(cover, "out"), addFade(clue))
Key PickupOBJECT

An object the player picks up (drag/tap) — the key_picked_up boolean flips; later the story text changes or a gate opens.

state machinery — key_picked_up (boolean, drag_reveal default)

LAWgrade interaction cap (1/page typical; one sanctioned heavy page); never shares the object spot with a teaser

addImage(key, "the key/object")
addOnDragOver(key, satchel, trigger=once) ->
  then(addFade(key, "out"), addBooleanVarEqualsValue(key_found, true))
// the READ, later: addBooleanVarBlock({{key_found}}) -> addFade(openedWay)
Entrance TeaserOBJECT

Every artifact page is FOUND: the PREVIOUS page carries a small teaser image — click it (no one on stage) or drag the character onto it → the artifact page.

_ensure_artifact_entrances (host = route-less linear page, no interactions)

LAWone object spot: an interaction-carrying page (key/reveal/drag) never also hosts the teaser (guard wired 2026-07-22)

addImage(artifactTeaser, "the sealed letter, small")
// no one on stage:
addOnClick(artifactTeaser) -> addGoToPage(artifactPage)
// character on stage (walk-to-it staging):
addOnDragOver(entranceActor, artifactTeaser) -> addGoToPage(artifactPage)
Evidence Collect → GateSTRUCTURE (multi-page)

NOT a one-page flourish: 2 clue acquisitions spread one-per-page (each rides the obstruction reveal + a counter increment), then the gate opens at the threshold. CAP = 2 (user ruling, clarity). Kind-specific counter: evidence_found vs collectibles_found. G4+; declare via the collect_gate face (GOT THEM ALL?), or the overclaim repair upgrades boolean over-claims.

collect_required_items machinery (one clue per page — the interaction cap can never strand the threshold)

LAWthe gate must be REAL: full coupling (gate_unlock/hub topology + locked_final + counter) or clues downgrade to optional

// per clue page (×N):
addOnClick(cover, trigger=once) ->
  then(addFade(cover, "out"), addFade(clue), addIncrement(evidence_found))
// the gate page:
addOnClick(gateBtn) -> addCompareNumbers({{evidence_found}}, N,
  If_greater_or_equal: addGoToPage(final))
Name-Your-HeroINPUT FIELD

The personalization NAME capture rides the CHARACTER-intro card (c3): the hero portrait is already cast, and a name field overlays low on it — the student names the character they just met, and the {{name}} weaves into later scenes. It is an OVERLAY, not the standalone TYPE YOUR NAME card. Capture, never checked.

identity_token_capture — routed to the character page (brainstorm_v2_graph, 2026-07-23)

LAWnames the UNNAMED-by-design protagonist (also the Dim-4 in-role identity fix); a mad-lib WORD capture does NOT ride here — it is a character + speech-bubble ask on its own beat

// on the character card:
addTextfield(nameField, "name your hero")
addOnTextInput(nameField) -> addTextVarEqualsTextObj(name, nameField)
Learner Overlays ×4OBJECT + TEXT

Name the Picture · Say Your Line · Call and Response · Write What You Hear — spoken/typed vocabulary moments riding a claimed host page (see the Learner band's OVERLAY-chipped cards for their full designs + DSL).

learner composables (is_language_learner gate)

LAWshared claim ledger: each claims a DISTINCT clean 1-write page