← Files AI Film Pipeline MasterARCHIVED FILE
skills/ai-film-pipeline-master/references/phase-01-story-generation/interactive-and-branching.md
128 KB · Sep 30, 2026 · 23:17 UTC
# Interactive and branching narrative
Pieces where the viewer does something and the piece answers. That covers more than games: an
interactive documentary, a museum installation, a kids app, a choose-your-path explainer, a
conversational piece that generates its replies, and the small interactions social platforms have
made ordinary — a poll, a stitch, a "comment and I'll post part two".
**Why these are their own cards.** Every rule in linear storytelling assumes you control the order.
Here you do not. The audience decides what they see and when, which breaks pacing, breaks reveal
structure, and breaks the ending — and the repairs are specific enough that guessing at them from
linear craft produces the same four failures every time: a branch that changes nothing, a middle
that sprawls, an ending budget nobody counted, and a viewer who clicked and learned nothing.
**On scope.** Several of these cards were written for nonfiction and for installations, where the
stakes are different from a game: a documentary that lets the viewer choose a path is making an
editorial claim with every branch it offers, and a museum piece has to work for someone who walks
up mid-sentence and leaves without finishing. Those constraints are in the cards that carry them.
---
<!-- GENERATED:toc — do not edit by hand. Generated in the source package -->
## Contents
- [Shape — how a branching piece is built](#shape-how-a-branching-piece-is-built)
- [Agency — the audience as a participant](#agency-the-audience-as-a-participant)
- [Writing inside the world](#writing-inside-the-world)
- [Nonfiction, testimony and the interactive documentary](#nonfiction-testimony-and-the-interactive-documentary)
- [Generated and conversational pieces](#generated-and-conversational-pieces)
- [Platform, language and delivery](#platform-language-and-delivery)
- [Second person, and writing for a feed](#second-person-and-writing-for-a-feed)
- [Craft Under Production Constraint](#craft-under-production-constraint)
- [Text Written to Be Counted or Performed](#text-written-to-be-counted-or-performed)
- [Participation and the Contract](#participation-and-the-contract)
- [Memory, State and the World as Text](#memory-state-and-the-world-as-text)
<!-- /GENERATED:toc -->
## Shape — how a branching piece is built
### Choose the System, Then Take Its Parts
**Also called:** the interactive selector, system before structure, who decides what comes next
**What it is:** The card at the head of the `inter.` shelf. It asks the three questions the shelf's own pair graph asks over and over — **what decides what the audience meets next, what one act by them actually changes, and who is exposed if the piece is wrong** — and hands back a named shortlist for each answer. The axes were read off the forty-six `Yields to:` conditions the cards carry and the `Avoid when:` boundary on every one of them; the conditions that repeated became the questions. Every card cited here is cited by id.
**Effect on the audience:** None. This card never reaches the screen. It exists so the structure was chosen against the venue, the budget and the person who has to live with being wrong, rather than picked because branching was the word in the brief.
**Used for and where it works best:** Answer question one **before anything is written**, out loud, in one sentence. It is the only question on this card that cannot be repaired later: a piece built as a spine and then rebuilt as a hub is rebuilt, not revised. Questions two and three narrow what is left. **And read the first answer as a system, not as a shortlist** — most of what looks like an alternative here is a part. A gate, a flag, a storylet, a gauntlet and an illusion are things that go *inside* an architecture, not things you have instead of one. Where two answers to question one fight for one piece, that is two pieces, and the honest move is to say so at the brief stage.
**Best in:** formats: all interactive | genres: all
**Avoid when:** **The venue has already answered question one.** A museum room, a feed post, a comment thread and a voice channel each decide the order before you arrive, and on those the map's fourth value swallows the piece whole and the remaining questions sort almost nothing. Also avoid it on a linear piece with one interaction bolted on, where the interaction is a moment and not a structure — the shelf has no value for that and will hand you an architecture you do not need. And **distrust question three whenever your honest answer is its first value**: two-thirds of the shelf lives there, so on invented material this map has two questions left and is doing two-thirds of the work it does on testimony. The deepest warning is the one this card cannot enforce: **the pair graph it was built from is a graph of retreats.** Every route it offers goes somewhere cheaper, safer or more controlled than where you started. Nothing on this shelf will ever tell you to open the space, to build the room, or to let the audience speak — so the map is a good guide to what to stop doing and a poor one to what to attempt.
**Example:** `a heritage piece for a gallery wall: question one answers 'the room decides' -> the spine and hub cards are both wrong, the visitor arc and the walk-up entry are the structure, and the branching question was never the question.`
---
**The axes**
**Axis 1 — What decides what the audience meets next?**
Asked first, and it is by a distance the condition the shelf repeats most: fourteen of the forty-six `Yields to:` lines turn on who owns the order — *"Segments are equal and independent, no order argument"* (`inter.branch_and_bottleneck`), *"The piece has an argument that depends on order"* (`inter.hub_and_spoke`), *"A guaranteed emotional order is needed; climax goes on a bottleneck"* (`inter.storylet`), *"A path omits something that changes the conclusion"* (`inter.path_that_omits`), *"A fact everyone must leave with belongs on the spine"* (`inter.chosen_path_explainer`), *"Accounts not comparable in kind; put one on the spine"* (`inter.testimony_selector`), *"The original's order is load-bearing"* (`inter.interactive_adaptation`), *"Content needs fixed order; let architecture supply it"* (`inter.agency_of_passage`), *"Audience was promised control here"* (`inter.gauntlet`).
**Axis 2 — What does one act by the audience actually change?**
Seven conditions turn on it and they are stated as mechanics, not feelings: *"The choice must be cosmetic; change texture, not nothing"* (`inter.false_branch`), *"Register demands weight; vary manner and aftermath instead"* (`inter.flavour_choice`), *"The choice must hold weight against rewinding"* (`inter.save_scum_problem`), *"The choice is explicitly flavour and read as flavour"* (`inter.meaningful_choice_test`), *"Too many discrete facts to track and read"* (`inter.state_flag`), *"Short runtime or fragmented play breaks the fuse"* (`inter.delayed_consequence`), *"The audience must see why it happened"* (`inter.quality_based_narrative`).
**Axis 3 — Who is exposed if this is wrong: the story, a source, or a person?**
Seven conditions turn on it, and unlike the other two it is the axis the `Avoid when:` fields carry rather than the pair fields: *"Subject is a real person; answer from sources, no voice"* (`inter.conversational_persona`), *"Source base cannot support open questions"* (`inter.user_asked_question`), *"Generated text near quotation must be sourced and marked"* (`inter.paraphrase_drift`), *"Label what each path rests on instead of balancing"* (`inter.symmetrical_fabrication`), *"Non-fiction: name what was missed"* (`inter.second_run_reward`), *"Non-fiction, where every layer must independently be true"* (`inter.skippable_layering`), *"The break would use the person, not the apparatus"* (`inter.meta_structure`). It is asked last because it does not change the architecture; it changes what the architecture owes.
---
**The map**
**Axis 1 — what decides what comes next**
| Answer | The shortlist, by id |
| :--- | :--- |
| **A spine you wrote** — real alternatives that rejoin, and an author who knows what every route contains (twenty-six) | `inter.branch_and_bottleneck` · `inter.combinatorial_explosion` · `inter.ending_budget` · `inter.canon_ending_problem` · `inter.false_branch` · `inter.flavour_choice` · `inter.path_that_omits` · `inter.interactive_adaptation` · `inter.illusion_of_agency` · `inter.meaningful_choice_test` · `inter.no_good_option` · `inter.choice_framing` · `inter.timed_choice` · `inter.epilogue_card` · `inter.unchosen_path` · `inter.second_run_reward` · `inter.permadeath_writing` · `inter.fail_state_as_story` · `inter.save_scum_problem` · `inter.gauntlet` · `inter.chosen_path_explainer` · `inter.symmetrical_fabrication` · `inter.nonfiction_branch_contract` · `inter.player_character_voice` · `inter.second_person_default` · `inter.ludonarrative_dissonance` |
| **A place they keep coming back to** — segments equal, reachable in any order, the centre carrying the orientation (seventeen) | `inter.hub_and_spoke` · `inter.gated_progression` · `inter.puzzle_construction` · `inter.environmental_storytelling` · `inter.found_document` · `inter.archive_way_in` · `inter.data_surface` · `inter.depth_on_demand` · `inter.skippable_layering` · `inter.rabbit_hole` · `inter.diegetic_tutorial` · `inter.clicked_therefore_understood` · `inter.bark` · `inter.party_banter` · `inter.testimony_selector` · `inter.balance_cast_testimony` · `inter.consent_without_a_cut` |
| **A condition the piece evaluates** — content appears when it qualifies, and what qualifies it is accumulated, not chosen (twelve) | `inter.storylet` · `inter.quality_based_narrative` · `inter.state_flag` · `inter.delayed_consequence` · `inter.player_driven_arc` · `inter.session_recap` · `inter.conditional_localisation` · `inter.personalisation_limit` · `inter.user_asked_question` · `inter.conversational_persona` · `inter.guarded_generation` · `inter.paraphrase_drift` |
| **Nothing you control** — a room, a feed, a thread or a voice channel decides, and the piece must survive being met in any order and from the middle (seventeen) | `inter.agency_of_passage` · `inter.pacing_without_control` · `inter.visitor_arc` · `inter.walk_up_entry` · `inter.boxed_read_aloud` · `inter.presence_writing` · `inter.accessible_interaction` · `inter.audience_asked_to_act` · `inter.platform_contract` · `inter.outlive_the_platform` · `inter.string_budget` · `inter.chat_thread_fiction` · `inter.designed_for_the_stitch` · `inter.authored_reply` · `inter.arg_pacing` · `inter.voice_first_narrative` · `inter.meta_structure` |
**And the first two values are the only pair on this shelf that genuinely exclude each other.** `inter.branch_and_bottleneck` and `inter.hub_and_spoke` name each other in both directions and give opposite reasons, which is what a fork looks like. Everything else in the architecture region nests: `inter.storylet` says put the climax on a bottleneck and let the storylets fill the space around it; `inter.state_flag` says its home is everywhere and that flags are what let a bottleneck still feel personal after the merge; `inter.gated_progression` is the main tool for reveal order *in a structure that otherwise has none*; `inter.gauntlet` is a stretch inside a piece, not a piece; `inter.illusion_of_agency` is what you put at a fork you could not afford to make real; and `inter.delayed_consequence` is not an alternative to `inter.state_flag`, it **is** a state flag with a long fuse. **Read the third value the same way.** The `Yields to:` field can only say *instead of*; it has no grammar for *inside*, so every containment on this shelf arrives disguised as a fork.
**Axis 2 — what one act changes**
| Answer | The shortlist, by id |
| :--- | :--- |
| **Where they go** — a different scene follows, and you are paying for it (twenty-six) | `inter.branch_and_bottleneck` · `inter.hub_and_spoke` · `inter.gated_progression` · `inter.combinatorial_explosion` · `inter.ending_budget` · `inter.canon_ending_problem` · `inter.false_branch` · `inter.path_that_omits` · `inter.interactive_adaptation` · `inter.save_scum_problem` · `inter.permadeath_writing` · `inter.fail_state_as_story` · `inter.puzzle_construction` · `inter.epilogue_card` · `inter.nonfiction_branch_contract` · `inter.symmetrical_fabrication` · `inter.testimony_selector` · `inter.archive_way_in` · `inter.chosen_path_explainer` · `inter.user_asked_question` · `inter.choice_framing` · `inter.timed_choice` · `inter.rabbit_hole` · `inter.unchosen_path` · `inter.meaningful_choice_test` · `inter.no_good_option` |
| **What the piece remembers** — nothing visible now, something later (nine) | `inter.storylet` · `inter.quality_based_narrative` · `inter.state_flag` · `inter.player_driven_arc` · `inter.second_run_reward` · `inter.conditional_localisation` · `inter.personalisation_limit` · `inter.session_recap` · `inter.delayed_consequence` |
| **Only how it felt** — the manner, the wording, the aftermath, the voice it is said in (fourteen) | `inter.flavour_choice` · `inter.player_character_voice` · `inter.ludonarrative_dissonance` · `inter.bark` · `inter.party_banter` · `inter.presence_writing` · `inter.conversational_persona` · `inter.guarded_generation` · `inter.paraphrase_drift` · `inter.voice_first_narrative` · `inter.second_person_default` · `inter.meta_structure` · `inter.string_budget` · `inter.illusion_of_agency` |
| **Nothing — they are looking, walking, listening or being asked** (twenty-three) | `inter.gauntlet` · `inter.agency_of_passage` · `inter.pacing_without_control` · `inter.clicked_therefore_understood` · `inter.environmental_storytelling` · `inter.found_document` · `inter.diegetic_tutorial` · `inter.boxed_read_aloud` · `inter.walk_up_entry` · `inter.accessible_interaction` · `inter.balance_cast_testimony` · `inter.consent_without_a_cut` · `inter.data_surface` · `inter.visitor_arc` · `inter.platform_contract` · `inter.outlive_the_platform` · `inter.designed_for_the_stitch` · `inter.arg_pacing` · `inter.chat_thread_fiction` · `inter.authored_reply` · `inter.audience_asked_to_act` · `inter.depth_on_demand` · `inter.skippable_layering` |
**Axis 3 — who is exposed if it is wrong**
| Answer | The shortlist, by id |
| :--- | :--- |
| **A source** — a document, a figure, a testimony that has to survive being checked by someone who was there (twelve) | `inter.path_that_omits` · `inter.nonfiction_branch_contract` · `inter.symmetrical_fabrication` · `inter.testimony_selector` · `inter.archive_way_in` · `inter.data_surface` · `inter.chosen_path_explainer` · `inter.user_asked_question` · `inter.guarded_generation` · `inter.paraphrase_drift` · `inter.unchosen_path` · `inter.depth_on_demand` |
| **A person in the room** — a contributor, a child, a captive audience, or the audience's own data (twelve) | `inter.accessible_interaction` · `inter.balance_cast_testimony` · `inter.consent_without_a_cut` · `inter.conversational_persona` · `inter.personalisation_limit` · `inter.meta_structure` · `inter.authored_reply` · `inter.audience_asked_to_act` · `inter.timed_choice` · `inter.fail_state_as_story` · `inter.presence_writing` · `inter.rabbit_hole` |
| **Only the fiction** — you owe the story and nothing else (forty-eight) | Every other card named in the two tables above. It is named by complement on purpose: listing forty-eight ids here would make the map longer than the shelf, which is the one thing the template forbids — and the length of the complement *is* the warning in this card's own `Avoid when:` |
*A card appears once per axis. The answer is the intersection of the three shortlists — except on axis 1, where the answer is a system and the shortlist under it is that system's parts rather than its rivals.*
---
**The default, and the one against it**
**The default is `inter.branch_and_bottleneck` holding the shape, with `inter.state_flag` doing the remembering inside it — and it is measured, not asserted.** `inter.branch_and_bottleneck` is the most-yielded-to card on the shelf by a wide margin: eight cards send a reader to it, against three for the next-highest. **It survives the test that in-degree alone would fail**, because the eight edges carry five distinct conditions and not one: *the piece has an argument that depends on order* (`inter.hub_and_spoke`), *a guaranteed emotional order is needed* (`inter.storylet`), *a path omits something that changes the conclusion* (`inter.path_that_omits`), *a fact everyone must leave with belongs on the spine* (`inter.chosen_path_explainer`) and *accounts are not comparable in kind* (`inter.testimony_selector`) are one condition in five costumes — something must be guaranteed on every route — but *the tree is unaffordable* (`inter.combinatorial_explosion`), *the audience must see why it happened* (`inter.quality_based_narrative`) and *the piece invites comparison* (`inter.illusion_of_agency`) are three more, and they are budget, legibility and exposure. A card reached eight times for one reason is a door out of the shelf. This one is reached for five, which is what a fallback looks like. Its own card says the same thing in its own words — *it is the default structure, and departing from it should be a decision rather than an accident* — and `inter.state_flag` says its home is everywhere. **One caution on the arithmetic:** one of those eight edges starts at `inter.combinatorial_explosion`, which is a diagnosis rather than a construction, so it is a repair edge pointing into the map from outside it. Seven pointer edges and four distinct conditions remain, and the default holds either way.
**The one against it is `inter.environmental_storytelling`.** Nothing routes to it; it is named by no `Yields to:` on the shelf; and it is the only card here where the audience is given complete agency and the piece never offers them anything. Every other way this shelf hands over control — `inter.flavour_choice`, `inter.illusion_of_agency`, `inter.gauntlet`, `inter.timed_choice` — stages an offer first and then limits what the offer can do, which is a subtraction the audience can eventually catch and, by `inter.illusion_of_agency`'s own warning, will catch in public. **A room that was dressed makes no promise, so it cannot break one:** the viewer chooses what to look at, in what order and whether to look at all, and no branch was ever written. Its only stated cost is that the detail may be found by a completist alone, which its own `Yields to:` pays with two tiers. Its near cousin against the grain is `inter.agency_of_passage`, likewise reached by nothing, which relocates agency from the click to the feet and is the one card on the shelf that treats standing still as an act.
---
**The unasked**
**Forty-four of the seventy-two reachable cards are the target of no `Yields to:` field anywhere on this shelf.** They can be chosen but nothing ever sends you to them. By id:
`inter.storylet` · `inter.combinatorial_explosion` · `inter.canon_ending_problem` · `inter.false_branch` · `inter.path_that_omits` · `inter.interactive_adaptation` · `inter.player_driven_arc` · `inter.player_character_voice` · `inter.agency_of_passage` · `inter.permadeath_writing` · `inter.save_scum_problem` · `inter.ludonarrative_dissonance` · `inter.second_run_reward` · `inter.clicked_therefore_understood` · `inter.environmental_storytelling` · `inter.bark` · `inter.party_banter` · `inter.diegetic_tutorial` · `inter.presence_writing` · `inter.puzzle_construction` · `inter.nonfiction_branch_contract` · `inter.symmetrical_fabrication` · `inter.testimony_selector` · `inter.balance_cast_testimony` · `inter.consent_without_a_cut` · `inter.archive_way_in` · `inter.conversational_persona` · `inter.paraphrase_drift` · `inter.voice_first_narrative` · `inter.platform_contract` · `inter.outlive_the_platform` · `inter.conditional_localisation` · `inter.session_recap` · `inter.designed_for_the_stitch` · `inter.arg_pacing` · `inter.second_person_default` · `inter.choice_framing` · `inter.chat_thread_fiction` · `inter.meta_structure` · `inter.rabbit_hole` · `inter.string_budget` · `inter.audience_asked_to_act` · `inter.meaningful_choice_test` · `inter.no_good_option`
**And the shape of that list is the finding, not its length. Every edge on this shelf runs downhill.** Sort the reached cards against the unasked ones and the division is not by section, not by phase and not by fiction against nonfiction — it is by ambition. The cards anything routes to are the cheap ones, the safe ones and the small ones: merge instead of branching (`inter.branch_and_bottleneck`), remember instead of branching (`inter.state_flag`), change the colour instead of the outcome (`inter.flavour_choice`), fake the *how* and keep the *whether* (`inter.illusion_of_agency`), report the ending instead of playing it (`inter.epilogue_card`), layer it instead of writing it twice (`inter.skippable_layering`, `inter.depth_on_demand`), take the clock back (`inter.gauntlet`), refuse the question (`inter.guarded_generation`), start from the middle because nobody stayed (`inter.walk_up_entry`). **Nothing on this shelf ever points from a cheap structure to an expensive one**, with exactly two exceptions — `inter.illusion_of_agency` → `inter.branch_and_bottleneck` (*buy one real branch*) and `inter.clicked_therefore_understood` → `inter.data_surface` (*make the manipulated thing be the content itself*) — and **both of those start at a card that diagnoses a failure rather than building something.** The only place this shelf asks you to spend more is a repair edge, which is the rule that a pointer edge and a repair edge do different work, turning up here as the difference between a retreat and a rescue.
The second thing the list shows is why: **the pair field can say *instead of* and cannot say *inside*, and this shelf is full of *inside*.** `inter.storylet` is reached by nothing, though `inter.quality_based_narrative` is assembled out of storylets and both read what `inter.state_flag` writes. `inter.gated_progression` is reached once, from a puzzle, though it is the reveal-order mechanism for every open structure on the shelf. A reader comparing two cards is comparing two things that could occupy the same slot, and a component never occupies the slot of the thing it is a component of — so it drops out of the graph entirely. **The new card this shelf wants is the one above the fork, not beside it:** the question of what container this is being made for, asked before the architecture, because a museum wall, a comment thread, a voice assistant and a downloadable game answer question one in four different ways and none of them by choosing. The nearest thing that exists, `inter.platform_contract`, records the container's limits and warns against taking them from memory — and nothing on the shelf routes a reader there to read it.
`inter.choose_the_system_first`
---
### Branch and Bottleneck
**Also called:** diamond structure, gather point, branch-and-merge
**What it is:** Letting choices open genuinely different scenes and then bringing them back to a shared scene that every path reaches, so the piece has a spine instead of a spray.
**Effect on the audience:** The choice feels consequential in the moment, and the piece still arrives somewhere authored. Writing a bottleneck is what lets you afford a real branch at all.
**Used for and where it works best:** Almost every branching piece longer than a few minutes. It is the default structure, and departing from it should be a decision rather than an accident.
**Best in:** formats: Interactive Film, Interactive Documentary, Narrative Game, Kids App | genres: All
**Avoid when:** The piece is short enough to be fully branching, or the whole point is that paths never reconverge — but then read `inter.combinatorial_explosion` first and count what you have promised.
**Example:** `three choices at the gate -> three different guards, three different conversations -> all three arrive in the courtyard with the same object and different knowledge about it.`
**Yields to:** `inter.hub_and_spoke` — Segments are equal and independent, no order argument.
`inter.branch_and_bottleneck`
---
### Hub and Spoke
**Also called:** the hub level, radial structure, return-to-base
**What it is:** A central place or state the audience returns to between segments, from which several pieces of content are reachable in any order.
**Effect on the audience:** Gives freedom without giving chaos. The hub carries the orientation the segments cannot, so nobody is ever lost, and it lets you write segments that do not need to know about each other.
**Used for and where it works best:** Interactive documentaries, museum installations, kids apps, anything where the audience arrives with different interests and should not be forced through one order.
**Best in:** formats: Interactive Documentary, Museum Installation, Kids App, Web Explainer | genres: Nonfiction, Educational, Heritage
**Avoid when:** The piece has a genuine argument that depends on order. A hub tells the audience "these are equal and independent", and if they are not, it lies.
**Example:** `a map of the site is the hub; six locations are the spokes; each returns you to the map with that location marked as visited.`
**Yields to:** `inter.branch_and_bottleneck` — The piece has an argument that depends on order.
`inter.hub_and_spoke`
---
### The Storylet
**Also called:** modular content unit, qualified scene, content pool
**What it is:** Writing self-contained scenes each carrying its own conditions for when it may appear, and letting the system choose from whatever currently qualifies, rather than authoring one fixed sequence.
**Effect on the audience:** The piece feels responsive and re-readable, because a second pass surfaces material the first never qualified for.
**Used for and where it works best:** Long pieces with limited budget, any project where content will be added over time, and anything that wants to reward a second run.
**Best in:** formats: Narrative Game, Interactive Fiction, Serialised App | genres: All
**Avoid when:** The piece needs a guaranteed emotional order. Storylets are excellent at texture and terrible at climax; put the climax on a bottleneck and let the storylets fill the space around it.
**Example:** `scene 'The Argument at the Well' requires: knows_about_the_debt = true, met_the_sister = true, chapter >= 2. It will appear when those are true and not before.`
**Yields to:** `inter.branch_and_bottleneck` — A guaranteed emotional order is needed; climax goes on a bottleneck.
`inter.storylet`
---
### The Gauntlet
**Also called:** the forced run, the corridor sequence, no-choice stretch
**What it is:** A deliberate stretch with no meaningful choice in it, placed where the piece needs the audience to feel carried rather than consulted.
**Effect on the audience:** Relief, and pressure. Constant agency is exhausting, and a piece that never takes the wheel never gets to accelerate. The gauntlet is where a branching piece is allowed to be a film.
**Used for and where it works best:** Climaxes, disasters, anything whose meaning is that it could not be stopped.
**Best in:** formats: Narrative Game, Interactive Film | genres: Thriller, Tragedy, Horror, War
**Avoid when:** The audience has been promised control over exactly this. Taking the wheel during the one moment they were told was theirs reads as a bug, not as direction.
**Example:** `the flood sequence: nine scenes, no choices, every input acknowledged and none of them changes anything. The point is that nothing changes anything.`
**Yields to:** `inter.pacing_without_control` — Audience was promised control here; pace inside the material.
`inter.gauntlet`
---
### Gated Progression
**Also called:** the lock and key, knowledge gate, prerequisite structure
**What it is:** Withholding a section until the audience has something — an object, a fact, a relationship — so that arriving is earned rather than stumbled into.
**Effect on the audience:** Turns exploration into progress. A gate is the cheapest way to make a wide space feel authored.
**Used for and where it works best:** Any open structure that risks feeling like a menu. Also the main tool for controlling reveal order in a piece that otherwise has none.
**Best in:** formats: Narrative Game, Interactive Documentary, Museum Installation | genres: Mystery, Educational, Heritage
**Avoid when:** The gate is arbitrary. A lock whose key has no meaning is just a wait, and audiences can tell within seconds which kind they are looking at.
**Example:** `the chamber will not open until you have heard the widow's account, because the room means nothing before you know what happened in it.`
`inter.gated_progression`
---
### Quality-Based Narrative
**Also called:** stat-driven story, accumulated state, the number that is a character
**What it is:** Driving what happens next from accumulated values — trust, suspicion, how much the audience has understood — rather than from a tree of recorded choices.
**Effect on the audience:** Consequence that feels like weather rather than like a switch. Nobody can point to the choice that did it, which is exactly why it reads as a relationship rather than a mechanism.
**Used for and where it works best:** Long pieces, relationship-driven work, anything where a tree of discrete branches would become unmaintainable by chapter three.
**Best in:** formats: Narrative Game, Interactive Fiction, Serialised App | genres: Drama, Romance, Political
**Avoid when:** The audience must be able to see why something happened. Qualities are opaque by design, and opacity is cruel in a piece about a decision the audience is meant to own.
**Example:** `trust rises three times across chapter one; at the threshold, the scene at the door plays with the door open instead of closed. No single choice did it.`
**Yields to:** `inter.branch_and_bottleneck` — The audience must see why it happened.
`inter.quality_based_narrative`
---
### The Combinatorial Explosion
**Also called:** branch blowup, the 2^n problem, unwritable tree
**What it is:** The arithmetic that kills unplanned branching projects: every binary choice doubles the material, so ten unmerged choices is a thousand and twenty-four endings nobody will ever write.
**Effect on the audience:** Unmanaged, it arrives as thin content — branches that are one line long, endings that are a paragraph, a second half visibly cheaper than the first.
**Used for and where it works best:** As a check, at the start. Count the leaves before writing the trunk.
**Best in:** formats: All interactive | genres: All
**Avoid when:** Never. This is arithmetic, not taste. The remedies are bottlenecks (`inter.branch_and_bottleneck`), state instead of branches (`inter.quality_based_narrative`), and an honest ending count (`inter.ending_budget`).
**Example:** `4 choices fully branched = 16 paths. With a bottleneck after choice 2: 4 + 4 = 8 scenes for the same felt freedom.`
**Yields to:** `inter.branch_and_bottleneck` — The tree is unaffordable; merge instead of doubling.
`inter.combinatorial_explosion`
---
### The Ending Budget
**Also called:** ending count, how many endings you can afford
**What it is:** Deciding, before writing, exactly how many endings the piece will have and what each one is *for* — because endings are the most expensive content in interactive work and the most likely to be cut in half.
**Effect on the audience:** A piece with four strong endings reads as generous; the same piece with twelve, of which eight are two lines long, reads as broken.
**Used for and where it works best:** Every branching piece. Write the ending list first, and let the middle serve it.
**Best in:** formats: Interactive Film, Narrative Game, Interactive Fiction | genres: All
**Avoid when:** Never, though the budget may legitimately be one — a single ending reached differently is a respectable design and often the strongest.
**Example:** `three endings: she leaves, she stays and knows, she stays and does not. Every branch in the piece feeds one of those three and no fourth exists.`
**Yields to:** `inter.epilogue_card` — More paths than endings you can afford to write.
`inter.ending_budget`
---
### The Canon Ending Problem
**Also called:** the sequel problem, which one really happened, continuity after choice
**What it is:** What to do when a branching piece needs a sequel, an adaptation, or a linear cut: one ending has to become the one that happened, and every audience who chose differently learns their version did not count.
**Effect on the audience:** Handled badly it retroactively voids the first piece. Handled well — by opening the sequel *after* the point where the branches reconverge, or by carrying the divergence forward as something characters disagree about — it costs nothing.
**Used for and where it works best:** Series planning, commissioned work where a linear version is contractually coming, any piece with a life after this one.
**Best in:** formats: Interactive Film, Narrative Game, Commissioned Interactive | genres: All
**Avoid when:** The piece is genuinely standalone. Do not design around a sequel nobody has asked for; it flattens the endings you do have.
**Example:** `the sequel opens ten years later, in a room every ending could have led to, and the thing you chose is never named — only its shape is visible in what she does not say.`
`inter.canon_ending_problem`
---
### The State Flag
**Also called:** remembered fact, the variable, continuity token
**What it is:** Recording one thing the audience did or learned, and letting later scenes read it, so the piece can acknowledge history without branching for it.
**Effect on the audience:** The single cheapest way to make an interactive piece feel like it is paying attention. One acknowledged detail four scenes later buys more than three new branches.
**Used for and where it works best:** Everywhere. Flags are what let a bottleneck structure still feel personal on the far side of the merge.
**Best in:** formats: All interactive | genres: All
**Avoid when:** The flag is set and never read. An unread flag is a promise the piece forgot, and audiences who notice the first one stop trusting the rest.
**Example:** `told_the_truth = true -> the guard's line at the bridge changes by four words. Same scene, same branch, remembered.`
**Yields to:** `inter.quality_based_narrative` — Too many discrete facts to track and read.
`inter.state_flag`
---
### The False Branch
**Also called:** fake choice, cosmetic option, the illusion that is not one
**What it is:** A choice that visibly changes nothing — not even a line — offered because the interface needed a button.
**Effect on the audience:** Corrosive, and cumulative. One is invisible; three teaches the audience that none of the choices matter, and after that the real ones do not land either.
**Used for and where it works best:** As a named failure, so it can be caught in review. If a choice must be cosmetic, at least make it *flavour* — see `inter.flavour_choice` — which changes the texture even when it does not change the path.
**Best in:** formats: All interactive | genres: All
**Avoid when:** Always, as a deliberate design. Distinguish it carefully from `inter.illusion_of_agency`, which is a legitimate craft where the piece converges but the *experience* genuinely differs; a false branch differs in nothing.
**Example:** `"Do you take the lamp?" Yes and No both continue to the identical next paragraph, with the lamp never mentioned again either way.`
**Yields to:** `inter.flavour_choice` — The choice must be cosmetic; change texture, not nothing.
`inter.false_branch`
---
### The Flavour Choice
**Also called:** cosmetic-but-honest, texture choice, colour not direction
**What it is:** A choice that changes how a scene feels — its tone, its wording, which detail is noticed — without changing where it goes.
**Effect on the audience:** Ownership without cost. The audience recognises their own taste in the piece, which is most of what agency actually feels like.
**Used for and where it works best:** Kids work especially, where choosing is the pleasure and consequence is not wanted; also any piece that needs more choice points than it can afford branches for.
**Best in:** formats: Kids App, Kids Song, Interactive Fiction, Social Interactive | genres: Children, Comedy, Educational
**Avoid when:** The piece has promised that choices matter, in a register where they must. A flavour choice offered in the tone of a moral decision is a false branch wearing a better coat.
**Example:** `pick the red cloak or the blue one; the story is identical and the cloak is described, by colour, in eleven later scenes.`
**Yields to:** `inter.illusion_of_agency` — Register demands weight; vary manner and aftermath instead.
`inter.flavour_choice`
---
### The Path That Omits
**Also called:** what this route never shows, the editorial branch, selective truth
**What it is:** Recognising that in nonfiction every branch is an edit, so each path is a version of events that leaves something out — and being deliberate about what each one omits.
**Effect on the audience:** A viewer who takes one path believes they have seen the subject. Whatever that path does not contain, they will not know is missing.
**Used for and where it works best:** Interactive documentary, journalism, anything where the audience chooses which testimony or evidence to see.
**Best in:** formats: Interactive Documentary, Web Journalism, Museum Installation | genres: Nonfiction, Journalism, Heritage
**Avoid when:** Never, on nonfiction. Write the omission list for every path and check that no path omits something that would change the conclusion — if one does, that material belongs on the bottleneck, not on a branch.
**Example:** `path A never encounters the mine's safety record; path B never meets the families. Both are honest routes; neither is the story. The safety record moves to the shared close.`
**Yields to:** `inter.branch_and_bottleneck` — A path omits something that changes the conclusion.
`inter.path_that_omits`
---
### Interactive Adaptation
**Also called:** porting a linear story, making the film clickable
**What it is:** Turning existing linear material into an interactive piece, which is a rewrite rather than a port: the scenes that carry the original often depend on an order the new form cannot guarantee.
**Effect on the audience:** Done as a port, it reads as a film with buttons — reveals land out of order, the ending arrives before its setup. Done as a rewrite, the original's spine survives and its sequence does not.
**Used for and where it works best:** Commissioned work where the client owns a linear property and wants an interactive version of it.
**Best in:** formats: Interactive Film, Museum Installation, Brand Interactive | genres: All
**Avoid when:** The original's power *is* its order — a piece built on a single withheld fact usually should not become branching at all. Say so at the brief stage rather than discovering it in the build.
**Example:** `the documentary's third-act revelation becomes the hub's locked room: the same fact, but now the viewer arrives at it having chosen to, which is a different feeling and has to be written as one.`
**Yields to:** `inter.illusion_of_agency` — The original's order is load-bearing; never branch the whether.
`inter.interactive_adaptation`
---
## Agency — the audience as a participant
### The Player-Driven Arc
**Also called:** behavioural arc, arc under input, the character you make them
**What it is:** An authored character arc whose direction is set by how the audience behaves rather than by what they say — the piece watches what they actually do and bends the character toward it.
**Effect on the audience:** The strongest form of ownership available in interactive work, because nobody ever chose it from a menu.
**Used for and where it works best:** Character games, long-form interactive drama, anything with a repeated action whose meaning can shift.
**Best in:** formats: Narrative Game, Interactive Film | genres: Drama, Tragedy, Moral
**Avoid when:** The behaviour being read is ambiguous. If the audience was clicking fast because they were bored, and the piece reads that as cruelty, the arc lands as an accusation they did not earn — see `inter.ludonarrative_dissonance`.
**Example:** `she starts deferring to whoever the player consistently protects. Nobody was asked who she should become.`
`inter.player_driven_arc`
---
### The Player Character's Voice
**Also called:** silent protagonist, the voiced player, whose line is it
**What it is:** Deciding whether the figure the audience inhabits speaks in their own voice, speaks in lines the audience selects, or does not speak at all — and holding that decision consistently.
**Effect on the audience:** A silent protagonist is a vessel and lets the audience project; a voiced one is a character and lets the writer write. Mixing them produces a person who is sometimes the audience and sometimes a stranger.
**Used for and where it works best:** Every piece with a first-person or second-person position. Decide it before the first line.
**Best in:** formats: Narrative Game, Interactive Fiction, VR | genres: All
**Avoid when:** Never skip the decision. The specific failure to avoid is the *summarised* choice: the audience picks a short label and the character delivers a paragraph they would not have chosen, which is worse than either pure option.
**Example:** `option reads "Refuse." Spoken line: "No." Not: "No — and after everything your family did to mine, you have some nerve asking."`
`inter.player_character_voice`
---
### The Agency of Passage
**Also called:** walking is the interaction, movement as choice, the visitor's own pace
**What it is:** Treating where someone stands and how long they linger as the interaction, in pieces with no buttons at all — installations, VR, physical exhibitions, walk-through experiences.
**Effect on the audience:** Agency without an interface, which is the only kind available to someone who will not read instructions and did not come to play a game.
**Used for and where it works best:** Museum and gallery work, heritage sites, projection pieces, anything in a physical space.
**Best in:** formats: Museum Installation, VR, Site-Specific | genres: Heritage, Educational, Art
**Avoid when:** The content genuinely needs a fixed order — then seat them, or build the passage so the order is architectural.
**Example:** `the audio changes as you cross the room; standing still at the centre is a choice the piece answers, and nobody had to be told that.`
**Yields to:** `inter.visitor_arc` — Content needs fixed order; let architecture supply it.
`inter.agency_of_passage`
---
### Pacing Without Control
**Also called:** the viewer holds the clock, uncontrolled dwell time, pacing you do not own
**What it is:** Writing for a piece where you cannot set the rhythm, because the audience decides how long each part lasts — and building the pacing into the *material* rather than into the edit.
**Effect on the audience:** Without it, a piece is either frantic for the person who lingers or glacial for the person who does not. With it, both get something shaped.
**Used for and where it works best:** All interactive work, and most acutely in installations and kids apps where dwell time varies by an order of magnitude.
**Best in:** formats: Museum Installation, Kids App, Interactive Documentary, Web Explainer | genres: All
**Avoid when:** Never, though the techniques differ: make each unit satisfying at its shortest length, put the rhythm inside the unit rather than between units, and use `inter.gauntlet` where you genuinely need to take the clock back.
**Example:** `every panel reads in eight seconds and rewards forty. Neither visitor is punished.`
**Yields to:** `inter.gauntlet` — You genuinely need to take the clock back.
`inter.pacing_without_control`
---
### Writing for Permadeath
**Also called:** irreversible loss, the run that ends, no going back
**What it is:** Writing a piece where a failure is final, so the narrative has to be able to end at any point and still mean something.
**Effect on the audience:** Genuine stakes, of a kind linear work cannot produce — the tension is real because the loss is.
**Used for and where it works best:** Survival and horror, roguelikes, anything whose subject is fragility.
**Best in:** formats: Narrative Game | genres: Horror, Survival, Tragedy, War
**Avoid when:** The piece is educational or commissioned and the audience is expected to reach the end. Permadeath and a required message do not coexist; one of them is lying.
**Example:** `each death writes a line into the graveyard the next run walks past. Nothing is undone, and the runs accumulate into the story.`
**Yields to:** `inter.fail_state_as_story` — Educational or commissioned piece where everyone must finish.
`inter.permadeath_writing`
---
### The Save-Scum Problem
**Also called:** undo defeats consequence, the reload, choosing twice
**What it is:** The fact that an audience who can rewind will simply retry a decision they dislike, which dissolves any weight the decision had.
**Effect on the audience:** Not necessarily bad — many audiences want to see everything, and forbidding that is often the wrong fight. The failure is designing for weight and delivering a menu.
**Used for and where it works best:** As a design question asked early: does this piece want irreversible choices, and if so, what actually makes them irreversible?
**Best in:** formats: Narrative Game, Interactive Film | genres: Drama, Moral, Thriller
**Avoid when:** Never skip asking. The usual answers: delay the consequence past the point anyone would rewind to (`inter.delayed_consequence`), make both outcomes interesting so there is nothing to retry for, or acknowledge the rewind inside the fiction.
**Example:** `the consequence surfaces ninety minutes later, by which point reloading costs more than living with it.`
**Yields to:** `inter.delayed_consequence` — The choice must hold weight against rewinding.
`inter.save_scum_problem`
---
### Fail State as Story
**Also called:** losing is content, the productive failure, death as a scene
**What it is:** Writing failure as narrative material — something that reveals, deepens or advances — rather than as an interruption that says "try again".
**Effect on the audience:** Failure stops being punishment and becomes exploration. In children's work especially this is the difference between a piece that builds confidence and one that teaches avoidance.
**Used for and where it works best:** Kids apps and educational work above all; also horror and survival, where the fail state is often the best writing in the piece.
**Best in:** formats: Kids App, Narrative Game, Educational Interactive | genres: Children, Educational, Horror, Survival
**Avoid when:** Never in kids work. A bare "wrong, try again" is the single most common failure in children's interactive design and it costs you the child, not the level.
**Example:** `the bridge collapses and the fox says "I have always wondered what was down here" — the failure is a room, not a wall.`
`inter.fail_state_as_story`
---
### Ludonarrative Dissonance
**Also called:** the story says one thing and the doing says another, mechanic-meaning gap
**What it is:** The gap between what a piece says it is about and what it actually has the audience do — the mercy parable in which the only verb is violence, the piece about patience that rewards speed.
**Effect on the audience:** The doing wins, every time. Audiences believe the verb, not the voiceover.
**Used for and where it works best:** As a review pass: list every action the audience can take, and check each one against the theme.
**Best in:** formats: All interactive | genres: All
**Avoid when:** Never, though it can be used on purpose — a piece whose subject *is* that gap is a real and strong design, and it depends on producing the gap deliberately. The failure is producing it by accident.
**Example:** `the narration mourns the city while the only button available is "burn". Either the narration is wrong or the button is.`
`inter.ludonarrative_dissonance`
---
### The Second-Run Reward
**Also called:** replay payoff, the line that only makes sense the second time, new-game-plus writing
**What it is:** Material written so that a second pass reads differently — a line that was innocuous and is now an admission, a room whose contents change meaning once you know what happened in it.
**Effect on the audience:** Converts replay from repetition into revelation, and it is nearly free: the same words, read by someone who now knows.
**Used for and where it works best:** Mystery, anything with a twist, short pieces designed to be watched twice, and social formats where a rewatch is the metric.
**Best in:** formats: Interactive Fiction, Narrative Game, Short-Form Social | genres: Mystery, Thriller, Drama
**Avoid when:** The reward requires the second run to be *complete* before it pays. Put at least one of these in the first five minutes, or nobody will find out the second run is worth taking.
**Example:** `"I was at my sister's that night." Second run, you have met the sister and she died in 2009.`
**Yields to:** `inter.unchosen_path` — Non-fiction: name what was missed, not a hidden re-read.
`inter.second_run_reward`
---
### Clicked, Therefore Understood
**Also called:** the interaction fallacy, engagement is not comprehension
**What it is:** The mistaken assumption that because the audience interacted with something, they took in what it said — when clicking, dragging and choosing are frequently the *opposite* of attention.
**Effect on the audience:** Pieces built on this assumption measure well and teach nothing. The interaction absorbs the attention the content needed.
**Used for and where it works best:** As a hard check in educational, museum and explainer work: for each interaction, name what the audience now knows that they did not before, and whether the interaction or the content is what delivered it.
**Best in:** formats: Museum Installation, Kids App, Web Explainer, Interactive Documentary | genres: Educational, Nonfiction, Heritage
**Avoid when:** Never skip the check. The usual repair is to make the interaction *be* the content — the thing they manipulate is the thing being explained — rather than a wrapper around it.
**Example:** `dragging the year slider teaches the shape of the decline, because the shape is what moves. A quiz after a paragraph teaches nothing about the paragraph.`
**Yields to:** `inter.data_surface` — Make the manipulated thing be the content itself.
`inter.clicked_therefore_understood`
---
## Writing inside the world
### Environmental Storytelling
**Also called:** the room tells it, spatial narrative, story in the set dressing
**What it is:** Putting narrative into a place rather than into speech: what is on the table, what has been repaired, what is missing from the wall.
**Effect on the audience:** The audience assembles it themselves, which makes it theirs. It is also the only narration available in pieces where nobody can be made to listen.
**Used for and where it works best:** Games, installations, VR, walk-through heritage pieces, and any interactive documentary built on a real location.
**Best in:** formats: Narrative Game, Museum Installation, VR, Interactive Documentary | genres: All
**Avoid when:** The detail is so subtle that only a completist finds it. Layer it: one reading available to anyone crossing the room, a second for whoever stops.
**Example:** `two cups, one cold since morning, and a coat still on the hook in August.`
**Yields to:** `inter.skippable_layering` — The detail only a completist finds; give two tiers.
`inter.environmental_storytelling`
---
### The Found Document
**Also called:** the letter on the desk, epistolary object, readable in-world text
**What it is:** In-world writing the audience can choose to read — a letter, a ledger, a message thread, an inscription — carrying story that the main line does not require.
**Effect on the audience:** Optional depth for whoever wants it, and the most reliable way to give an interactive piece a second voice without adding a character.
**Used for and where it works best:** Games, museum pieces, interactive documentary where the document is a real archive object.
**Best in:** formats: Narrative Game, Interactive Documentary, Museum Installation | genres: Mystery, History, Heritage, Horror
**Avoid when:** It carries load-bearing plot. Anything optional will be missed by most of the audience; a found document explains, colours and confirms, and never informs for the first time.
**Example:** `the requisition list, in which the same name appears eleven times and then stops.`
**Yields to:** `inter.skippable_layering` — The information is load-bearing; put it in the mandatory layer.
`inter.found_document`
---
### The Bark
**Also called:** ambient line, incidental dialogue, overheard one-liner
**What it is:** A short line delivered by a background figure, triggered by circumstance rather than by conversation — the guard's mutter, the passer-by's remark, the crowd's reaction.
**Effect on the audience:** Makes a world feel inhabited at almost no cost, and carries exposition that would be unbearable if a scene had to stop for it.
**Used for and where it works best:** Games, crowd scenes, any world that must feel populated without adding characters.
**Best in:** formats: Narrative Game, Animation, VR | genres: All
**Avoid when:** The pool is too small. A bark heard three times becomes a machine noise and actively drains the world it was there to fill — write many more than you think you need, and gate them so the same one cannot repeat quickly.
**Example:** `"They closed the north road again." Different speaker, different corner, only after the flood.`
`inter.bark`
---
### Party Banter
**Also called:** companion chatter, travel dialogue, the group talks among itself
**What it is:** Conversation between accompanying characters that plays while the audience is doing something else, developing relationships in the gaps rather than in scenes.
**Effect on the audience:** Characters who exist when not being addressed, which is the cheapest route to an ensemble that feels real — and the main reason audiences form attachments to companions.
**Used for and where it works best:** Games and animation with a travelling group; also serialised kids content with a fixed cast.
**Best in:** formats: Narrative Game, Animation Series | genres: Adventure, Fantasy, Comedy, Children
**Avoid when:** It carries information the audience must have, since it competes with whatever they are actually doing. Banter deepens; it does not deliver.
**Example:** `the cook and the soldier argue about bread for ninety seconds, and by the end you know which one grew up hungry.`
**Yields to:** `inter.skippable_layering` — The audience must have this information; banter competes.
`inter.party_banter`
---
### The Diegetic Tutorial
**Also called:** teaching inside the fiction, the lesson that is a scene
**What it is:** Teaching the audience how the piece works through story — a character who must be shown, a task that requires the mechanic, a first scene that is a lesson without announcing itself.
**Effect on the audience:** Nobody experiences instruction. The piece starts on its first frame rather than after the explanation.
**Used for and where it works best:** Kids apps especially, where an instruction screen is simply skipped; also any piece whose audience did not come to read.
**Best in:** formats: Kids App, Narrative Game, Museum Installation | genres: Children, Educational, All
**Avoid when:** The mechanic is genuinely unguessable and the cost of failing is high. Then teach it plainly and get out — a bad tutorial is better than a confused first ten minutes.
**Example:** `the little brother cannot reach the shelf, so you help him. That was the drag gesture and nobody said the word "drag".`
`inter.diegetic_tutorial`
---
### Presence Writing
**Also called:** writing for embodiment, second-person space, VR register
**What it is:** Writing for a piece where the audience is bodily *in* the scene rather than watching it — which changes register, scale, and above all what may be said aloud about them.
**Effect on the audience:** Done right, an intimacy no screen achieves. Done wrong, the specific discomfort of being narrated at while standing in a room.
**Used for and where it works best:** VR, projection installations, walk-through heritage, anything where the audience has a body in the space.
**Best in:** formats: VR, Museum Installation, Site-Specific | genres: Heritage, Documentary, Art, Horror
**Avoid when:** Never describe the audience's own feelings or actions to them. "You feel afraid" is refutable in a way it is not on a page, and every refusal breaks the presence the piece is built on.
**Example:** `the character looks slightly past you, at the door, and says nothing. You will turn around. Nobody wrote "you turn around".`
`inter.presence_writing`
---
### Puzzle Construction
**Also called:** the solvable obstacle, fair puzzle design, the logic gate
**What it is:** Building an obstacle whose solution is discoverable from what the audience has been shown, and whose solving means something in the story rather than only in the mechanism.
**Effect on the audience:** Earned progress. A fair puzzle makes the audience feel clever; an unfair one makes them feel excluded, and they do not come back.
**Used for and where it works best:** Games, escape-room formats, museum interactives, mystery.
**Best in:** formats: Narrative Game, Museum Installation, Interactive Fiction | genres: Mystery, Adventure, Educational
**Avoid when:** The puzzle is the writer being clever. The test is whether the solution, once seen, reads as obvious; if it reads as arbitrary, it was.
**Example:** `the inscription is the key, and the inscription was on the wall of the first room, where nobody needed it yet.`
**Yields to:** `inter.gated_progression` — The solution is arbitrary; gate on knowledge held.
`inter.puzzle_construction`
---
### The Boxed Read-Aloud
**Also called:** the panel text, the placard, exhibit copy
**What it is:** Short standalone blocks of text written to be read in a room, standing, possibly aloud to a child, by someone who did not read the previous one.
**Effect on the audience:** Either the piece's most-read writing or its least, depending entirely on whether it was written for the room or lifted from a script.
**Used for and where it works best:** Museum and heritage installations, exhibition panels, kids apps with adult co-readers.
**Best in:** formats: Museum Installation, Exhibition, Kids App | genres: Heritage, Educational, Nonfiction
**Avoid when:** Never lift it from the narration. Panel copy has its own constraints: it must open with the thing itself, survive being read out of order, work at about forty to sixty words, and read aloud without stumbling — see `rhythm.listener_no_rewind`.
**Example:** `"This bowl was mended twice. The second repair is the careful one." Sixty words follow. Nothing before it is assumed.`
`inter.boxed_read_aloud`
---
### The Walk-Up Entry
**Also called:** mid-sentence arrival, no beginning, the loop anyone can join
**What it is:** Building a piece so that someone arriving at a random moment is oriented within seconds, because in a public space nobody arrives at the start.
**Effect on the audience:** The difference between a visitor who stays and one who reads the room as already in progress and walks on.
**Used for and where it works best:** Museum installations, exhibition video, projections, shop-window and lobby pieces, anything on a loop in a public space.
**Best in:** formats: Museum Installation, Exhibition Loop, Site-Specific | genres: Heritage, Nonfiction, Art
**Avoid when:** The audience is seated and the piece has a start time. Otherwise: keep the loop short, restate the subject visually rather than verbally at intervals, and never open with a title card that is the only orientation in the piece.
**Example:** `every ninety seconds the image returns to the whole site from above; whoever walked in during a detail now knows where they are.`
`inter.walk_up_entry`
---
### Accessible Interaction
**Also called:** everyone can play, inclusive interaction design, the one-hand rule
**What it is:** Designing the interaction so that it works for the audience who cannot do the default thing — a child with small hands, a visitor in a wheelchair, someone with low vision, someone who does not read the language.
**Effect on the audience:** For the audience it includes, it is the whole difference between a piece and a closed door. For everyone else it is usually invisible and occasionally better.
**Used for and where it works best:** Kids work and public installations, where the audience is the general public and cannot be selected.
**Best in:** formats: Kids App, Museum Installation, Exhibition, Web Interactive | genres: Children, Educational, Heritage
**Avoid when:** Never treat it as a later pass. Retrofitted accessibility produces a parallel inferior version; designed in, it usually just means the interaction is simpler, which helps everyone.
**Example:** `every interaction is a single tap anywhere in a large area, every spoken line is also on screen, and nothing requires holding two things at once.`
`inter.accessible_interaction`
---
### The Epilogue Card
**Also called:** the after-card, what happened next, the closing state
**What it is:** A short closing block that reports the consequences of what the audience did — the state of the people and the world after their path.
**Effect on the audience:** Converts a set of choices into a story they can retell. It is also the cheapest ending in interactive work: one block of conditional text does what a branched final scene would cost twenty times more to build.
**Used for and where it works best:** Any branching piece with an ending budget smaller than its number of paths; also short social interactive formats where a full ending is not affordable.
**Best in:** formats: Interactive Fiction, Narrative Game, Short-Form Social, Interactive Documentary | genres: All
**Avoid when:** It is doing work a scene should have done. An epilogue that reports the emotional climax instead of dramatising it is a summary, and the audience feels the substitution.
**Example:** `"The well was never reopened. Yusuf's daughter returned in 1974 and found the house standing." One line changes if you warned him.`
**Yields to:** `inter.ending_budget` — The climax must be dramatised, not reported.
`inter.epilogue_card`
---
## Nonfiction, testimony and the interactive documentary
### The Nonfiction Branch Contract
**Also called:** what a branch promises in a true story, the documentary's interactive ethics
**What it is:** The rule that in nonfiction a branch is an editorial act: offering the audience a choice of paths tells them the paths are equivalent, and if one is better-sourced than another, the interface has told a lie the narration never did.
**Effect on the audience:** Viewers read structure as argument. Two equally-weighted buttons say "these are two sides", whatever the commentary says afterwards.
**Used for and where it works best:** Every interactive documentary, every branching journalism piece, every museum interactive about a contested subject.
**Best in:** formats: Interactive Documentary, Web Journalism, Museum Installation | genres: Nonfiction, Journalism, History, Heritage
**Avoid when:** Never skip it. State the contract explicitly in the piece: what choosing does, what it does not do, and what every path contains regardless.
**Example:** `"Whichever you choose, you will see the coroner's report." Said once, at the first branch, and honoured.`
`inter.nonfiction_branch_contract`
---
### Branch Sourcing
**Also called:** evidence per path, sourcing the route, the footnote on a choice
**What it is:** Holding each branch to the same evidentiary standard as a linear cut, and recording the sourcing per path rather than for the piece as a whole.
**Effect on the audience:** Invisible when right, fatal when wrong — because the weakest branch is the one a hostile reader will find, and it will be quoted as though it were the piece.
**Used for and where it works best:** All interactive nonfiction, and especially any piece where different paths carry different claims.
**Best in:** formats: Interactive Documentary, Web Journalism | genres: Nonfiction, Journalism, History
**Avoid when:** Never. Keep a per-branch source record the same way a linear piece keeps a research record, and check the thinnest branch first.
**Example:** `path C rests on a single memoir published forty years later; either it gets a second source or it gets a line on screen saying what it rests on.`
`inter.branch_sourcing`
---
### Symmetrical Fabrication
**Also called:** the false balance of branches, manufactured two-sidedness
**What it is:** The specific failure of giving a contested question two equally-sized, equally-produced branches when the evidence is not equally distributed — manufacturing a balance that the record does not support.
**Effect on the audience:** The interface argues against the content. A viewer who takes the weaker path sees a fully produced, confidently narrated version of something the field does not accept.
**Used for and where it works best:** As a review check on any interactive nonfiction piece with a controversy in it.
**Best in:** formats: Interactive Documentary, Web Journalism, Museum Installation | genres: Nonfiction, Journalism, History, Heritage
**Avoid when:** Never produce it. The repair is asymmetry made visible: let the branches differ in size, label what each one rests on, or move the contested question off the branch structure entirely and narrate it.
**Example:** `not "Was it a flood or a siege?" as two equal doors, but one door marked what the chronicle says and one marked what the later Greek tradition says, each labelled as such.`
**Yields to:** `inter.branch_sourcing` — Label what each path rests on instead of balancing.
`inter.symmetrical_fabrication`
---
### The Testimony Selector
**Also called:** choose the witness, the interview menu, whose account
**What it is:** Letting the audience choose which person's account to hear — the most natural interactive structure for documentary and the one with the most hidden editorial weight.
**Effect on the audience:** Powerful, because choosing whom to listen to is genuinely how understanding forms. Dangerous, because whoever is placed first, illustrated best or listed at the top is the account most people hear.
**Used for and where it works best:** Oral history, heritage documentary, anything built on multiple first-person accounts.
**Best in:** formats: Interactive Documentary, Museum Installation, Oral History | genres: Nonfiction, Heritage, History
**Avoid when:** The accounts are not comparable in kind — a survivor and an analyst on the same menu invites the audience to weigh them against each other, which neither of them agreed to.
**Example:** `four voices, presented in an order that rotates per visit, each introduced by what they witnessed rather than by what they conclude.`
**Yields to:** `inter.branch_and_bottleneck` — Accounts not comparable in kind; put one on the spine.
`inter.testimony_selector`
---
### Balancing the Testimony Cast
**Also called:** who is on the menu, the selection before the selection
**What it is:** The prior editorial decision behind any testimony selector: which people made it into the choice at all, and what the shape of that group says.
**Effect on the audience:** The audience experiences the menu as the full range of views. Whoever is absent is not perceived as absent; they are perceived as not existing.
**Used for and where it works best:** Every piece with a choice of voices — document the cast decision alongside the branch structure, because it is the more consequential of the two.
**Best in:** formats: Interactive Documentary, Museum Installation, Oral History | genres: Nonfiction, Heritage, Journalism
**Avoid when:** Never skip it. Check for the ordinary distortions: who was available versus who was central, who speaks the production language, who is comfortable on camera, and which generation is missing.
**Example:** `six voices, five of them men, because the men were the ones in the union hall. That is a finding about the archive and it belongs on screen, not in the omission.`
`inter.balance_cast_testimony`
---
### Consent Without a Cut
**Also called:** consent in a branching piece, the interview that can be reassembled
**What it is:** The problem that a contributor consents to a piece, but in interactive work there is no single piece — their words can be reached in orders and combinations nobody showed them.
**Effect on the audience:** Invisible to the viewer and enormous to the contributor, who may encounter their own testimony placed against something they would never have agreed to sit beside.
**Used for and where it works best:** Every interactive nonfiction project with living contributors.
**Best in:** formats: Interactive Documentary, Oral History, Museum Installation | genres: Nonfiction, Heritage, Journalism
**Avoid when:** Never treat a linear release form as covering it. Show contributors the *structure*, name what their material can sit next to, and get agreement on the adjacencies rather than only on the words.
**Example:** `"Your account can be reached directly after the mayor's. Are you content with that?" Asked before the build, not after.`
`inter.consent_without_a_cut`
---
### The Archive Way In
**Also called:** the document as entry point, archive-led structure, browsing the evidence
**What it is:** Structuring a nonfiction piece so the audience enters through the source material itself — the photograph, the register, the map — and the narration comes out of what they opened.
**Effect on the audience:** The evidence arrives before the conclusion, which is the reverse of a documentary and is the thing interactive nonfiction can do that film cannot.
**Used for and where it works best:** Heritage projects with a real archive, museum pieces, family and community history, anything where the collection is itself the subject.
**Best in:** formats: Interactive Documentary, Museum Installation, Web Journalism | genres: Heritage, History, Nonfiction
**Avoid when:** The archive is thin. Ten documents presented as a collection reads as a collection; three reads as a slideshow with ambitions.
**Example:** `the shipping register opens on a random page, and whichever name you touch is the one the film follows.`
**Yields to:** `inter.found_document` — The archive is thin; use documents as optional colour.
`inter.archive_way_in`
---
### The Data Surface
**Also called:** the explorable figure, interactive chart as narrative, the number you can push
**What it is:** Turning a dataset into something the audience manipulates, so the shape of the data is discovered rather than asserted.
**Effect on the audience:** A discovered trend is believed in a way a stated one is not — the audience saw it move.
**Used for and where it works best:** Journalism, explainers, anything whose central claim is quantitative.
**Best in:** formats: Web Journalism, Interactive Documentary, Web Explainer | genres: Nonfiction, Educational, Journalism
**Avoid when:** The interaction lets the audience produce a reading the data does not support. Constrain the axes, declare the source and the date, and check what the most misleading possible arrangement looks like before shipping — someone will find it.
**Example:** `drag the year and watch the coastline move. The scale cannot be changed, because at the wrong scale it does not move at all.`
`inter.data_surface`
---
### The Chosen-Path Explainer
**Also called:** pick your route through the subject, the self-directed explainer
**What it is:** An explainer that lets the audience choose which aspect to go into, so depth is requested rather than imposed.
**Effect on the audience:** Everyone gets an appropriate piece: the curious go deep, the passing get the shape. It also surfaces what people actually want to know, which is useful beyond the piece.
**Used for and where it works best:** Educational and heritage work with a broad audience, especially where expertise varies enormously.
**Best in:** formats: Web Explainer, Museum Installation, Interactive Documentary | genres: Educational, Nonfiction, Heritage
**Avoid when:** There is a thing everyone must leave knowing. Put that on the spine where no path avoids it, and let the branches carry only the optional depth — see `inter.path_that_omits`.
**Example:** `everyone hears why the school closed. Whether you then go into the theology, the politics or the building is yours.`
**Yields to:** `inter.branch_and_bottleneck` — A fact everyone must leave with belongs on the spine.
`inter.chosen_path_explainer`
---
### The Visitor Arc
**Also called:** the shape of a visit, arrival to exit, the installation's dramaturgy
**What it is:** Designing the emotional shape of a whole visit — what the audience feels on arrival, in the middle and on the way out — in a piece with no fixed running order.
**Effect on the audience:** Without it, an exhibition is a set of good rooms and no experience. With it, people leave having been somewhere.
**Used for and where it works best:** Museum and exhibition work, heritage sites, multi-room installations, long-form interactive documentary.
**Best in:** formats: Museum Installation, Exhibition, Site-Specific | genres: Heritage, History, Art
**Avoid when:** Never skip it. The controllable points are the entrance, the exit and the physical constraints between them: build the arc out of what the architecture guarantees, not out of an order you hope for.
**Example:** `the entrance is loud and the last room is silent, and the corridor between them is long enough that the change is felt rather than noticed.`
`inter.visitor_arc`
---
### The User-Asked Question
**Also called:** the audience's own question, open-input nonfiction, ask the piece
**What it is:** Letting the audience ask something in their own words and answering from the material — increasingly common as conversational systems get embedded in exhibitions and documentaries.
**Effect on the audience:** The most responsive form available, and the most exposed: the piece is now answering questions nobody rehearsed.
**Used for and where it works best:** Museum interactives, archive projects, heritage work with a deep source base.
**Best in:** formats: Museum Installation, Interactive Documentary, Web Interactive | genres: Heritage, Educational, Nonfiction
**Avoid when:** The source base cannot support the range of questions people will ask. Read `inter.guarded_generation` before building one; an unanchored answer in a heritage piece is an invented fact with an institution's name on it.
**Example:** `"What did children eat?" is answered from three catalogued sources and says so. "Was my grandfather here?" is answered by saying the piece cannot know.`
**Yields to:** `inter.chosen_path_explainer` — Source base cannot support open questions; curate routes.
`inter.user_asked_question`
---
## Generated and conversational pieces
### The Conversational Persona
**Also called:** the character who replies, chatbot voice, the writable system
**What it is:** Writing a figure the audience talks to — its voice, what it knows, what it refuses, how it behaves when asked something outside its material.
**Effect on the audience:** Enormously engaging, and enormously fragile: the persona is only as good as its worst answer, and audiences hunt for the worst answer within about ninety seconds.
**Used for and where it works best:** Museum interactives, brand and support pieces, educational companions, social formats built on a recurring character.
**Best in:** formats: Museum Installation, Web Interactive, Social Interactive | genres: Educational, Heritage, Comedy, Brand
**Avoid when:** The persona is a real person — living or historical. A generated voice attributed to someone who existed is a fabrication regardless of the framing, and a heritage audience reads it as ventriloquism.
**Example:** `the character is a fictional scribe of the period, says so in her first line, and answers "I do not know that" about anything the collection does not hold.`
**Yields to:** `inter.user_asked_question` — Subject is a real person; answer from sources, no voice.
`inter.conversational_persona`
---
### Guarded Generation
**Also called:** anchoring the answer, the refusal rule, sourced reply
**What it is:** Constraining a generative element so it answers only from named material, and says plainly when it cannot, rather than producing a fluent answer with nothing behind it.
**Effect on the audience:** The guard is what makes the difference between an institution's voice and a plausible stranger's. An audience that catches one invented fact discounts every true one around it.
**Used for and where it works best:** Any museum, heritage, educational or journalistic piece with a generative component.
**Best in:** formats: Museum Installation, Web Interactive, Interactive Documentary | genres: Heritage, Educational, Nonfiction
**Avoid when:** Never relax it on factual material. Write the refusal lines with the same care as the answers — "the collection does not record that" is a good line and can be a warm one.
**Example:** `every answer names where it came from; anything outside the catalogue returns the refusal, and the refusal was written by the same writer as the rest.`
`inter.guarded_generation`
---
### Paraphrase Drift
**Also called:** the quote that wandered, generated restatement, second-hand testimony
**What it is:** The failure where a system restates a contributor's words in its own phrasing, and the restatement — smoother, more confident, subtly different in claim — travels as though it were what the person said.
**Effect on the audience:** Invisible to almost everyone and indefensible to the person quoted. It is the specific way a generated layer damages testimony.
**Used for and where it works best:** As a rule on any piece where generated text sits near real quotation.
**Best in:** formats: Interactive Documentary, Museum Installation, Oral History | genres: Nonfiction, Heritage, Journalism
**Avoid when:** Never allow it. Quotation is verbatim and marked as verbatim; anything generated is visibly the piece's own voice, and the two never share a typographic treatment.
**Example:** `she said "we thought it would be a few weeks". The piece may summarise around it. The piece may not say she said "we expected a short displacement".`
**Yields to:** `inter.guarded_generation` — Generated text near quotation must be sourced and marked.
`inter.paraphrase_drift`
---
### Voice-First Narrative
**Also called:** audio-only interactive, the spoken interface, eyes-free story
**What it is:** Writing for a piece the audience hears and answers aloud, with no screen — smart speakers, audio guides, phone-based experiences, and kids pieces designed for the car or bedtime.
**Effect on the audience:** Extremely intimate and extremely unforgiving: there is no back button, no glance at the interface, and nothing to look at while thinking.
**Used for and where it works best:** Kids audio, heritage audio guides, bedtime and car formats, accessibility-led work.
**Best in:** formats: Kids Audio, Audio Guide, Voice App | genres: Children, Heritage, Educational
**Avoid when:** Never carry more than about three options in a spoken choice, never rely on remembering anything more than one turn old, and never require a precise word — accept the way people actually answer.
**Example:** `"Do you want the story about the lion, or the one about the river?" Two options, named at the end, and "the river one" works.`
`inter.voice_first_narrative`
---
## Platform, language and delivery
### The Platform Contract
**Also called:** what the platform allows, the delivery constraint, writing to the container
**What it is:** The set of hard limits the destination imposes — how many choices fit, how long a segment may run, whether state survives a session, what the interface will and will not render — established before writing rather than discovered during it.
**Effect on the audience:** Nothing, when it is honoured. When it is not, the piece arrives clipped, mistimed or missing its interaction entirely.
**Used for and where it works best:** Every interactive commission. Write the contract down at the brief stage with the client, the same way a runtime is agreed.
**Best in:** formats: All interactive | genres: All
**Avoid when:** Never skip it, and never take it from memory — platform limits change, and a remembered limit is how a piece gets designed around a restriction that was lifted a year ago.
**Example:** `four options maximum, no state between sessions, twenty-second maximum per segment. The ending budget was set from those three lines.`
`inter.platform_contract`
---
### Outliving the Platform
**Also called:** the piece after the plugin dies, interactive preservation, the linear fallback
**What it is:** Planning for the fact that interactive work dies faster than anything else — the runtime is deprecated, the app store changes, the site is rebuilt — and deciding now what survives.
**Effect on the audience:** For a commissioned or heritage piece, the difference between a work that exists in five years and a press release about one that used to.
**Used for and where it works best:** Any funded, institutional or heritage interactive project, where the funder's own archive requirements usually demand it.
**Best in:** formats: Interactive Documentary, Museum Installation, Commissioned Interactive | genres: Heritage, Nonfiction, Educational
**Avoid when:** Never skip it. The practical minimum: a recorded linear walkthrough of at least one full path, the complete text exported as text, and the media kept outside the runtime that displays it.
**Example:** `deliverables include the interactive build, a 22-minute linear cut of the principal path, and every script and asset as flat files.`
`inter.outlive_the_platform`
---
### Conditional Localisation
**Also called:** the branch that does not translate, per-language variation, localisation-aware writing
**What it is:** Writing interactive text knowing it will be translated, where the branching multiplies the problem: conditional fragments assembled at runtime often cannot be translated as sentences at all.
**Effect on the audience:** In the target language, assembled text reads as machine output — wrong gender, wrong number, wrong word order — even when every fragment was translated correctly.
**Used for and where it works best:** Anything shipping in more than one language, which in his work means most kids content and most heritage content.
**Best in:** formats: Kids App, Museum Installation, Web Interactive | genres: Children, Heritage, Educational
**Avoid when:** Never assemble a sentence from fragments across a variable. Write whole sentences per case, even at the cost of repetition — and for Arabic and Syriac in particular, remember that gender and number reach back across the whole sentence, not just the noun.
**Example:** `not "You found " + n + " " + item. Instead: three complete sentences for none, one and many, written out in full in every language.`
`inter.conditional_localisation`
---
### The Personalisation Limit
**Also called:** how much it may know, the uncanny line, using their name
**What it is:** Deciding how far a piece may use what it knows about the person — their name, their choices, their return visits — before responsiveness becomes surveillance.
**Effect on the audience:** A small amount is delightful. A little more is unsettling, and the boundary is closer than designers expect, especially with children and especially when a parent is watching.
**Used for and where it works best:** Kids apps above all; also returning-visitor experiences and anything that persists state between sessions.
**Best in:** formats: Kids App, Web Interactive, Museum Installation | genres: Children, Educational, Brand
**Avoid when:** Never use anything the audience did not knowingly give, never use a child's data to shape emotional content, and never reference a gap between visits in a way that reads as having waited.
**Example:** `the character uses the name the child typed. The character does not say "you have not visited for eleven days".`
`inter.personalisation_limit`
---
### The Session Recap
**Also called:** previously on, re-entry summary, catching them back up
**What it is:** The short passage that re-orients someone returning after a gap, delivered in the piece's own voice rather than as an interface notice.
**Effect on the audience:** Removes the commonest reason people abandon long interactive work — coming back, not remembering, and closing it.
**Used for and where it works best:** Serialised interactive pieces, long games, anything with sessions; also live and podcast formats where listeners join mid-run.
**Best in:** formats: Narrative Game, Serialised App, Podcast, Social Live | genres: All
**Avoid when:** It is the same length every time. Scale it to the gap — a recap after ten minutes away is one line, after a month it is a scene — and make it a character's recollection rather than a summary screen wherever the fiction allows.
**Example:** `"You still have her letter." One sentence, in her voice, and the last two hours come back.`
**Yields to:** `inter.walk_up_entry` — Public looping piece with no session or known gap.
`inter.session_recap`
---
### Designed for the Stitch
**Also called:** writing to be replied to, duet-ready, the built-in prompt
**What it is:** Building a short-form piece so that the natural response is to make something — a stitch, a duet, a reply video, a comment that completes it — rather than only to watch.
**Effect on the audience:** The audience becomes the distribution. A piece that invites completion travels through the people who complete it.
**Used for and where it works best:** Social short-form, kids songs with a call-and-response shape, anything whose growth depends on participation rather than reach.
**Best in:** formats: Short-Form Social, Kids Song, Social Interactive | genres: Children, Comedy, Educational, Music
**Avoid when:** The invitation is stated rather than built in. "Duet this!" performs worse than a piece with an obvious hole in it that a person is itching to fill.
**Example:** `the last line of the song is the first half of a rhyme, and the beat carries on for two bars with nobody singing.`
**Yields to:** `inter.authored_reply` — The wanted response is words in the thread.
`inter.designed_for_the_stitch`
---
### ARG Pacing
**Also called:** alternate reality pacing, the slow-release mystery, drip structure
**What it is:** Running a piece across real time and more than one channel, where the audience's collective investigation is the mechanism and the schedule is the structure.
**Effect on the audience:** Extraordinary engagement from a small group and total invisibility to everyone else. It is a format that rewards depth and punishes anyone who arrives late.
**Used for and where it works best:** Campaign work with a dedicated community, launches, anything with an existing audience willing to organise.
**Best in:** formats: Social Campaign, Cross-Platform, Brand Interactive | genres: Mystery, Thriller, Brand
**Avoid when:** There is no community to do the work, or the schedule cannot be honoured. An ARG that goes quiet for two weeks is over, and the audience who invested feel it personally — plan the whole run before publishing the first piece, and build a way in for people arriving on day nine.
**Example:** `three channels, eleven days, one clue per day, and a public summary page that lets a newcomer on day nine catch up in five minutes.`
`inter.arg_pacing`
## Second person, and writing for a feed
These arrived from a file named for social video. **The craft is not social-specific** - second
person, choice framing, string budgets and the meaningful-choice test govern any piece the viewer
navigates - but the constraints below were written where a piece is published into a feed, and that
is worth keeping visible rather than dissolving.
### The Second Person and Its Alternatives
**Also called:** the "you" default, narrative person in IF, address choice, the avatar pronoun
**What it is:** The default voice of interactive prose is second person present — "You are standing at the end of a road" — and the decision to keep it, or to write the piece in first or third instead, is a structural choice about who the player is.
**Effect on the audience:** Second person collapses the gap between player and character and makes every noun an instruction. First person makes the player a passenger inside someone specific. Third makes them a director with sympathies.
**Used for and where it works best:** Keep second person when the player *is* the character and the piece wants their judgement implicated — it is the only person in which "You take the money" is an accusation. Go first person when the protagonist has a voice and a self-deception the player is meant to see past; it is the natural home of `voice.unreliable_enthusiast` in an interactive frame, because the player can catch the narrator in a lie by acting against them. Go third when the player commands more than one body, or when the story is about people rather than about you. The craft rule for second person: never write a "you" sentence that asserts an emotion — "You are furious" is the one line the player can refuse, and often will. Assert the body and let them supply the feeling. See `pov.second_person` and `voice.second_person_voice` for the prose-side treatment.
**Best in:** formats: Interactive Fiction, Game Narrative, Visual Novel, XR, Novel | genres: Horror, Mystery, Literary, Science Fiction, Psychological, Drama
**Avoid when:** The protagonist is fully defined and unlike the player. Second person then produces constant small contradictions — "you light a cigarette" to a player who does not smoke, "you remember your sister" to a player who has been given no sister — and each one pushes them back out. A named first-person voice is more honest and more interesting.
**Example:**
> SECOND: You put the envelope in your coat and do not look at the clerk. Your hands are steady, which you notice.
> FIRST: I put the envelope in my coat and didn't look at the clerk. My hands were steady. I remember thinking that was a strange thing to be proud of.
> THIRD: She puts the envelope in her coat. She does not look at the clerk. Her hands are steady and she is aware of it.
> Three different claims about the player: you did this, someone did this and is telling you, someone is doing this and you are watching.
**Yields to:** `pov.first_person_central` — Protagonist fully defined and unlike the player.
`inter.second_person_default`
---
### Choice Framing and Option Order
**Also called:** option wording, the serial position effect in choice, list-order bias, label bias
**What it is:** The recognition that *how* options are worded and *where* they sit in the list changes what players pick, independently of what the options do.
**Effect on the audience:** Unnoticed and large. First and last options are chosen disproportionately, the longest option reads as the important one, and the option phrased as an action beats the option phrased as a state.
**Used for and where it works best:** Every choice list, at the polish pass. Concrete rules you can apply today. Keep options the same grammatical shape — mixing "Refuse" with "Tell him you've been thinking about the ferry" advertises which one the author wrote for. Keep them within a few words of each other in length, because bulk reads as content. Put the option you most want *considered* second or third if you want a real spread, and first if the choice is a formality. Never let the order encode a moral ranking that repeats: a player who learns the top option is always the kind one stops reading the list and starts reading the position. And where the piece is about drift rather than decision, order against the meaning once and watch the choice slow down. Where the options are people's accounts rather than actions, the order is not an instrument to author: rotate it per visit, per `inter.testimony_selector`, so no account is privileged.
**Best in:** formats: Interactive Fiction, Game Narrative, Visual Novel, Conversational Agent, UX Writing, Educational | genres: Drama, Mystery, Romance, Political, Thriller, Educational
**Avoid when:** The choice is a reflex under a clock. Under time pressure the player reads the first two words of each option and nothing else, so framing subtlety is wasted; write two options, front-load the verb, and let `inter.timed_choice` do the work.
**Example:**
> BADLY FRAMED:
> → Refuse.
> → Tell her that you've thought about it for three days and you still can't see a way that doesn't end with someone in the river.
> *(Shape and length both announce the intended answer. Roughly nobody picks the first one.)*
>
> FRAMED:
> → Tell her no, and tell her why.
> → Tell her no, and don't.
> → Tell her you'll do it.
> Same three outcomes. Same shape, same weight — and the interesting distinction, whether he explains himself, is now the one the player is actually making.
**Yields to:** `inter.timed_choice` — The choice is a reflex under a clock.
`inter.choice_framing`
---
### The Timed Choice
**Also called:** the pressure clock, the choice timer, real-time decision, the expiring option
**What it is:** A decision that runs against a visible or audible clock, where not choosing is itself an outcome the author has written.
**Effect on the audience:** Physiological. The reading brain switches off and the reacting brain takes over, which produces decisions the player recognises as *theirs* in a way considered ones never are, and sometimes regrets immediately.
**Used for and where it works best:** Moments where the character would not have had time to think, and only those. Four rules. Write the timeout as a real scene, never as "nothing happens" — silence must be a third option with its own consequence, and it is often the best line in the sequence. Keep the options short enough to read twice in the time given: two options of six words each, not four of twenty. Never put a timer on a choice whose consequences the player cannot already predict, or you have built a coin flip with an adrenaline coat. And put the clock on *one* beat per sequence, because a piece where every choice is timed produces a player who stops reading and starts pattern-matching. The clock is a cousin of `tens.countdown` and `tens.interruption_clock`; the difference is that here it consumes the player's attention, not the character's.
**Best in:** formats: Game Narrative, Interactive Fiction, Visual Novel, XR, Immersive, Vertical Micro-Drama | genres: Thriller, Horror, Action, Crime, Survival, Drama
**Avoid when:** Accessibility matters, which is always — see `inter.accessible_interaction`. A hard timer excludes screen-reader users, slow readers and anyone playing one-handed, so ship an option to extend or disable it and write the scene so it still works untimed. Avoid it entirely in a reflective piece: a timer on a grief beat tells the player their feelings are on the clock.
**Example:**
> *(The lorry is already moving. 5s.)*
> → Get in.
> → Shout his name.
>
> ON TIMEOUT — not a stub, a scene:
> You do neither. You stand in the road with your hand half up, like a man hailing a taxi, and the tailgate goes past you at head height, and then the dust does.
> Later you will tell it as a decision.
**Yields to:** `inter.accessible_interaction` — Accessibility: ship an extendable or untimed path.
`inter.timed_choice`
---
### Chat-Thread Fiction
**Also called:** SMS fiction, chat-app narrative, texting stories, the messenger novel, Discord fiction
**What it is:** A story told entirely as a message thread, where the reader taps to advance or types a reply, and the interface conventions — typing indicators, read receipts, timestamps, edits, unsent drafts — are the prose.
**Effect on the audience:** Unusual intimacy and unusual dread. Everyone reads threads all day, so the form arrives pre-loaded with real emotional reflexes the author did not have to build.
**Used for and where it works best:** Short, high-tension, character-driven pieces, and anything about distance, secrecy or a relationship conducted in writing. The craft is entirely in the channel's own grammar. The pause is your strongest instrument: a three-second typing indicator that stops and does not resume is a whole beat, and it is `tens.waiting_as_weapon` with a mechanism. Write the *unsent* message, the corrected one, the reaction added and removed. Use the timestamp as a scene transition, because "02:14" after a gap does work no line can. Keep the player's own options to the length of a real text, since a paragraph in a message bubble breaks the illusion faster than any wrong word. And decide early whether the piece is real-time or tapped-through, because a thread that arrives on its own schedule is a different work — see `inter.arg_pacing`. Adjacent cards: `dial.text_on_screen`, `dial.voice_note`, `dial.lag_as_drama`.
**Best in:** formats: Interactive Fiction, Serialised Fiction, Vertical Micro-Drama, Web Series, Short Story | genres: Thriller, Horror, Romance, Mystery, Coming of Age, Drama, Dark Comedy
**Shelf life:** dated — review 2027-03. The form depends on current messaging-app conventions — read receipts, reactions, disappearing messages, edit windows — and a thread written to a 2019 interface already reads as period.
**Avoid when:** The story needs a body in a room. The thread cannot show what someone's face did, and a piece that keeps writing "*he looked away*" into a message bubble is a screenplay in the wrong container. Also avoid it where the plot needs more than about four participants: group threads are legible in life and illegible on a narrow screen.
**Example:**
> MIRA 23:41
> did you tell him
>
> MIRA 23:41
> about the ledger
>
> *you are typing…* *(4s)*
> *(stops)*
>
> MIRA 00:06
> ok
>
> MIRA 00:07
> that's an answer too
>
> → "I didn't."
> → "Not yet."
> → *(leave it)*
> *(Choosing "leave it" marks the thread read. She can see that.)*
**Yields to:** `dial.text_on_screen` — The story needs a body in a room.
`inter.chat_thread_fiction`
---
### Meta-Narrative and the Fourth Wall
**Also called:** metalepsis, the game that knows, breaking the frame, transdiegetic address
**What it is:** A structure in which the piece acknowledges its own apparatus — the save file, the menu, the player as distinct from the character, the fact of being played — and makes that acknowledgement part of the story.
**Effect on the audience:** A jolt that cannot be undone, and enormous power if it is spent once. The player's own real-world situation becomes available as material: their name, their pauses, their reloads, the file on their disk. Only what the player gave the piece by playing it — never the dates and gaps of their visits, which `inter.personalisation_limit` rules out.
**Used for and where it works best:** Horror, satire, and any piece whose theme is complicity, authorship or control — because the medium's apparatus *is* about control, so pointing at it is an argument rather than a trick. The rules. Establish the frame before you break it: twenty minutes of ordinary fiction makes the break land, and a piece that breaks in its first scene has nothing to break. Break it *for a reason the story needs* — the character who realises they are being steered is a theme, and the character who winks is `comedy.joke_shelf_life` spending itself. Escalate rather than repeat, since a second identical break is a gimmick and a third is a tic. And decide who is speaking through the wall, because "the character knows", "the game knows" and "the author knows" are three completely different stories. Adjacent: `pov.licensed_break`, `sub.direct_address`, and — for the difference between using the apparatus and using the *person* — `inter.personalisation_limit`, which is the line this card must not cross.
**Best in:** formats: Game Narrative, Interactive Fiction, Visual Novel, Immersive, XR | genres: Horror, Satire, Psychological, Surreal, Science Fiction, Dark Comedy
**Avoid when:** The piece has asked for emotional investment in a character. A break spends immersion, and a story that wants you to grieve cannot afford to remind you that nobody died. Also avoid it as cover for a structural problem: a game that jokes about its own corridor has admitted the corridor without fixing it.
**Example:**
> THE FRAME *(hour one, ordinary)*: Ferrant never mentions anything outside the story. Nothing on screen is addressed to you.
>
> THE BREAK *(hour four, once)*:
> FERRANT: You've done this before.
> → "Done what?"
> FERRANT: This. Sat there. *(beat)* I don't mean today. I mean every time you went back to the last save and sat here again — and each time I said this, and each time you asked me "done what".
> *(What he knows is the save file's own record of the reloads — the apparatus the player worked by playing — not the dates and times of their sessions, which would use the person (`inter.personalisation_limit`). He never does it again. He is different for the rest of the game, and so is every conversation they have already had.)*
**Yields to:** `inter.personalisation_limit` — The break would use the person, not the apparatus.
`inter.meta_structure`
---
## Craft Under Production Constraint
### The Rabbit Hole and the Trailhead
**Also called:** the trailhead, first contact, the entry artefact, the seed, the way in, TINAG onboarding
**What it is:** The deliberately planted first object of a pervasive or alternate-reality piece — a phone number in the credits, a website that should not exist, a poster with one wrong letter — written so that it can be *found* rather than shown, and so that finding it is already the first move of the story.
**Effect on the audience:** The specific charge of discovery: nobody handed this to them, so nobody is performing at them. That is the whole TINAG contract — This Is Not A Game — and it is bought or lost entirely at the entry point. Everything after it is easier.
**Used for and where it works best:** ARGs, marketing campaigns with a fiction attached, museum and city trails, Discord-native and community-run fictions, and any piece whose audience must recruit each other. Craft rules. **Write it for the person who does not know a piece exists**, which means it must be complete, strange and finishable on its own: a self-contained artefact with exactly one loose thread, not a trailer. **Plant several trailheads, not one rabbit hole** — most players arrive second-hand, and a single entry point means a single point of failure and a single archaeology. **Make the first action free**: no account, no purchase, no app, no fee, and the reward for the first correct move must arrive inside a minute. **Write the thread so it is legible to a group**, because ARGs are solved communally — a puzzle only one specialist can read kills the recruitment the form runs on. Pacing after entry is `inter.arg_pacing`; this is the moment before it.
**Best in:** formats: Immersive, Live Event, Game Narrative, Advertising, Web Series, Podcast, Educational | genres: Mystery, Horror, Science Fiction, Thriller, Detective, Heritage
**Avoid when:** The piece is branded and must say so. A rabbit hole that conceals a commercial sponsor stops being a fiction and becomes an undisclosed ad the moment it is found out, and it is always found out. Brand it plainly at the surface and let the fiction be strange underneath. Also avoid it where the audience is captive — a museum visitor who has bought a ticket has already entered, and hiding the entrance from them is just a bad sign.
**Example:**
> LAST FRAME OF THE MUSIC VIDEO, HELD 1.5 SECONDS, NO VOICEOVER:
>
> NORTHFIELD DISTRICT WATER BOARD
> PUMPING STATION No. 4 — DECOMMISSIONED 1998
> Faults and obstructions: 0300 400 8814
>
> *(The number answers. It is an answering machine, it is full, and the outgoing message is a man reading nine river-gauge readings and then saying "and that's four above, which I've reported, which I have reported." The message is dated a week from now.)*
**Yields to:** `inter.walk_up_entry` — Audience is captive or ticketed; orient, do not hide.
`inter.rabbit_hole`
---
## Text Written to Be Counted or Performed
### The String-Length Budget
**Also called:** character limits, the max-chars column, writing to a box, UI copy budget, expansion headroom, localisation truncation
**What it is:** Writing a line to a hard count imposed by a user-interface element, with the count reduced in advance by the amount translation will expand it — so the English is not written to the box, it is written to the box minus the expansion.
**Effect on the audience:** Invisible when it works and disastrous when it does not: a truncated button, a tooltip that ends mid-word, a quest name that shrinks to six points and cannot be read. In a shipped product, one clipped string does more damage to the writing's authority than a weak paragraph ever does.
**Used for and where it works best:** All UX writing, game HUD and menus, quest and item names, notification and push copy, achievement text, smart-TV and console interfaces, anything with a fixed art frame. Real numbers, and they are the point of this card: **the shorter the source string, the larger the expansion you must reserve.** IBM's figures, as published by the W3C, are roughly 100–200% growth for strings under ten characters, 80–100% for 11–20, 60–80% for 21–30, 40–60% for 31–50, and only past about seventy characters does the safe reserve fall to around 30%. German runs 30–40% longer than English overall on the package's working figure (the W3C page gives no overall German ratio), and short labels are far worse than that — "Settings" (8) becomes "Einstellungen" (13), a 62% overflow on a button that fit perfectly in English. Craft rules. **Ship a Max Characters column beside every string**, and mark each limit *hard* (the engine cuts) or *soft* (it overflows the art but renders). **Write the 20-character version first and the 40 second**, never the reverse, because trimming a good long line produces a mutilated line while expanding a good short one produces a better one. **Never build a sentence by concatenation** — "You have found" + item + "!" — because word order, gender and number all move; pass the whole sentence as one string with named placeholders. For Arabic the character count usually *falls* while line height rises and the entire layout mirrors, so a tight box passes the count test and still breaks; see `rhythm.arabic_rtl_rhythm`. Grammar across languages is `inter.conditional_localisation`; `rhythm.write_for_translator` is the prose-side habit; `dial.subtitle_constraint` is the same discipline with time instead of pixels.
**Best in:** formats: UX Writing, Game Narrative, Motion Graphics, Explainer, Product Video, Corporate, Educational | genres: Educational, Workplace, Science, Lifestyle, Advocacy
**Shelf life:** dated — review 2027-09. The expansion ratios are stable linguistics, but the platform character counts, the tooling conventions and the assumption that game UI does not reflow all rest on 2026 practice.
**Avoid when:** The container actually reflows and grows — web body copy, a chat bubble, a subtitle track with two lines available. Budgeting characters there produces clipped, telegraphic prose for no reason, and a writer who has been living in HUD strings will do it by reflex.
**Example:**
> FIELD: quest_name — hard limit 24 characters.
>
> DRAFT 1 (31): "The Matter of the Northern Gate" — cut in build to "The Matter of the Northern"
> DRAFT 2 (22): "Business at the Gate" — German 28, overflows.
> SHIPPED (14): "The Gate Debt" — German "Die Torschuld" (13). Fits everywhere, and is a better title.
>
> FIELD: pickup_toast — soft limit 40.
> NEVER: "You found " + $ITEM + "!" → *"You found Schlüssel der Witwe!"* and the grammar is wrong in four languages.
> ALWAYS: found_toast = "Picked up: {item}" → one string, one placeholder, no sentence built at runtime.
**Source:** reference — W3C Internationalization, Richard Ishida, "Text size in translation" (published 2007-07-03, updated 2016-02-01), https://www.w3.org/International/articles/article-text-size, checked 2026-09-24; supports the length-band expansion table (IBM's figures, given as translated length of 200–300% of the source up to 10 characters, 180–200% for 11–20, 160–180% for 21–30, 140–160% for 31–50, 130% over 70, i.e. the card's growth figures) and that shorter strings expand more; it gives no overall German ratio, so the 30–40% German figure stays the package's working figure.
**Yields to:** `dial.subtitle_constraint` — The container is a subtitle track; budget time, not pixels.
`inter.string_budget`
---
### Writing the Reply as Part of the Post
**Also called:** the pinned comment, the authored thread, comment-section design, the second ending, planned replies
**What it is:** Writing the comment space as authored ground before publishing — the pinned first comment, the line planted in the piece to provoke a specific disagreement, and the two or three replies you will make — so the thread is a designed part of the work rather than what happens to it afterwards.
**Effect on the audience:** The reader arrives in a room that already has a conversation in it and joins that one instead of starting a worse one. It also relocates the piece's real ending: on a platform, the last thing most people read is not your last line, it is the top comment.
**Used for and where it works best:** Short video, essays and newsletters with open comments, carousels, community-led brand accounts, anything an algorithm rewards for replies. Craft rules. **Write the pinned comment before you publish**, and give it one job — a question, a correction, a source, a confession — because creators who pin with a stated purpose and a matching format outperform the ones who pin as an afterthought. **Plant the disagreement inside the piece**, early, and leave it unresolved: one mildly contestable line around the two-minute mark produces a thread before the pin even goes up, and the thread is between viewers rather than at you. **A challenge out-pulls an open question** — "spot the thing I got wrong" gets replies that a "what do you think?" does not, because it is answerable. **Answer three and stop.** A creator who answers every comment trains the room to expect a host; a creator who answers three substantively and pins the best exchange trains it to expect a conversation. And **write replies in the same voice as the piece**: the reply is not backstage, it is the last page.
**Best in:** formats: Reels/Shorts, Essay, Carousel, Web Series, Vlog, Podcast, UGC Ad | genres: Educational, Lifestyle, Advocacy, Journalism, Comedy, Slice of Life, Heritage
**Shelf life:** dated — review 2027-03. Pinning, reply threading, comment visibility and the ranking that decides which reply is read first are platform features with current behaviour; the discipline of authoring the space is durable.
**Avoid when:** The subject brings a hostile audience you cannot host — identity, faith, politics, an active grief. Designing a thread there means you have designed a place for it to happen, and you will be moderating rather than writing. Close the comments and put the reply in the piece.
**Example:**
> IN THE VIDEO, 2:05 — *the plantable line, left unresolved:*
> > "And they pressed the tablets with a stylus, which is not writing in the sense you and I mean it."
>
> PINNED COMMENT, WRITTEN BEFORE UPLOAD:
> > I've said one thing in this that specialists argue about, and I've said it as though it's settled. First person to name it gets pinned under this. (It isn't the date.)
>
> REPLY, 40 MINUTES LATER, PINNED AS A THREAD:
> > @nahrin_k has it — and she's right that I fudged it. Kept the line anyway, and here's why I think the fudge is defensible: [ ... ]
>
> *(The correction is now inside the work, attributed, and the top of the thread is an argument the author is losing gracefully — which is the most-read square inch of the whole piece.)*
`inter.authored_reply`
---
## Participation and the Contract
### Asking the Audience to Act
**Also called:** participation, the ask, audience agency outside a game, invited action, the direct request, participatory performance
**What it is:** Writing a moment where a non-interactive piece asks its audience to do something real — stand, answer, choose, carry, write back — and building the moment so the ask is small, refusable, legible and consequential.
**Effect on the audience:** The body joins. Involvement that has passed through a hand or a mouth is remembered differently from involvement that only passed through attention, and an audience that has done one thing is a different audience for everything after it. The risk is symmetrical: a badly built ask produces the specific misery of not knowing what is expected in a dark room.
**Used for and where it works best:** Immersive and promenade theatre, live events, PSAs and advocacy, sermons and commemorations, classroom and heritage work, and prose that turns and addresses the reader. This is the card `intents.md` reaches for under **Agency** and cannot find, because everything else about participation in this database is written for games. Craft rules. **Make the first ask tiny and public.** Everybody does it at once, nobody is singled out, and it costs nothing — a hand up, a name said aloud, a card taken. That establishes the grammar, and every later ask draws on the credit it earned. **Every ask must be refusable without penalty and without visibility.** An audience member who declines must be able to decline silently, and the piece must have a written path for their refusal, or you have not built consent, you have built compliance. **Plant one person who has been told what to do**, so the first participant is never a stranger guessing — the room copies the first move, and if the first move is confused the room stays confused. **Say the ask in the imperative, once, and then wait longer than is comfortable.** Instructions repeated three times read as anxiety and get obeyed as a chore. **Tell them what it was for** afterwards; an ask that is never referred to again teaches the audience that the participation was decorative. In prose the equivalent machinery is `pov.direct_address` and `pov.narratee`; the honest limit of what you may ask a reader is `inter.personalisation_limit`.
**Best in:** formats: Immersive, Live Event, Stage Play, PSA, Monologue, Educational, Documentary Interview | genres: Advocacy, Faith, Heritage, Testimony, Social Drama, Educational, Kids
**Avoid when:** The audience cannot refuse without cost — a captive audience at work, a school assembly, a congregation, a funeral. Also avoid the ask that gathers something you then keep: names, addresses, confessions written on cards and collected are a data transaction dressed as a ritual, and the room can feel it. If the ask is emotional, the artefact must go home with the person who made it.
**Example:**
> *(Houselights half up. The performer has a bowl of unlit tea-lights and is not looking at anyone.)*
>
> "There's a candle under your seat. Don't light it.
>
> If you've buried somebody this year, hold it. Just hold it. Nobody's counting and I'm not going to look.
>
> *(Ten seconds. Too long. She looks at the back wall.)*
>
> Right. The people holding a candle already know what the next forty minutes are about, and the rest of you are about to find out."
>
> *(The ask costs nothing, cannot be seen from the stage, requires no answer, and the play refers to it once more at the end — which is what makes it a beat and not a gimmick.)*
**Yields to:** `pov.direct_address` — The piece is prose, not a live room.
`inter.audience_asked_to_act`
---
### The Unchosen Path as Content
**Also called:** showing the road not taken, the completion map, the unheard-voices card, negative-space navigation
**What it is:** Making the shape of what the user did not open into a visible part of the piece — a map that greys the unvisited, an end card naming the accounts they never heard, a counter that says how much of the archive they have seen.
**Effect on the audience:** It converts a comfortable sense of having finished into an accurate sense of having sampled. Done well it is the single most honest move the form has, because it tells the user the truth about their own experience — and it is also the strongest replay driver in non-fiction, where curiosity does the work that cliffhangers do elsewhere.
**Used for and where it works best:** Any piece large enough that no one sees all of it, which is most of them. Write the unchosen surface as **content, not as telemetry**: "You did not hear Samira, who was the only one there when the school closed" lands; "34% explored" does not, and a progress bar quietly reframes a testimony collection as a completion task. Three rules keep it from becoming nagging. **Name, do not tally** — one or two specific things missed, with the reason they matter, beats any percentage. **Write it in the piece's voice,** not in the interface's, because this is the one moment the authorial hand is allowed to be visible and it should sound like the same person who wrote the rest. **Offer a route back that is one click, and only one**, placed after the ending rather than during, so the user finishes before they are told what they missed. Pair it with `inter.epilogue_card`, which is where it usually lives, and with `inter.second_run_reward` for what the return visit should be given.
**Best in:** formats: Documentary, Heritage Documentary, Educational, Immersive, Explainer, Long-Form Non-Fiction | genres: Testimony, Heritage, Journalism, Historical, Migration, Advocacy
**Avoid when:** The piece is short enough to be exhausted in one sitting, where the card only tells the user they have done everything and flattens a good ending into a receipt. Also avoid it where the missed material is genuinely minor — naming trivia as a loss teaches the user that the naming is decorative, and the one time it matters they will skip it. And never use it to shame: an unchosen-path card that implies the user chose badly turns an honest device into a scold, and they close the tab.
**Example:**
> **You have finished. Here is what you did not open.**
>
> You spent most of your hour with the engineers. You did not meet Hana, who ran the clinic in the same building for eleven years and is the only person in this archive who describes the night of the flood from inside it.
>
> She is four minutes long.
>
> → Hear Hana → Leave it here
**Yields to:** `inter.epilogue_card` — The piece is short enough to be exhausted.
`inter.unchosen_path`
### Depth on Demand
**Also called:** the layered fact, progressive disclosure, the expandable claim, tiered text, the pyramid that opens
**What it is:** Writing a fact at two or three complete depths — a short line that is true on its own, an expansion for the reader who taps, and sometimes the underlying document — so that stopping at the first layer leaves a reader correctly informed rather than half-informed.
**Effect on the audience:** It ends the writer's oldest false choice between the reader who wants one sentence and the reader who wants the evidence. Both are served, and neither is punished.
**Used for and where it works best:** Explainers, museum text, heritage pieces, any non-fiction on a small screen. The rule that makes it craft rather than formatting: **write the top layer last, and write it to be the only thing read.** Most people stop there. Museum practice is the sharpest available guide, and its working figure is around 30 seconds on a wall label, roughly 50 words for a section label, 100 for a section description, 160 for an introduction panel, and a population that splits, with about a third reading almost nothing and about four in ten reading most of it. Build for both of those readers in the same object. Then: **each layer must be independently true**, never a teaser that is corrected below, because a reader who stops at a hedge-free summary has been misled by a piece that technically contains the hedge. **Layer two answers the question layer one raises**, not the next question in your outline. **Cap it at three**, because a fourth layer is a document and should be linked as one. And **do not hide the bad news down a layer** — anything that would change what a reader does belongs at the top, where `voice.the_hedge` has to do its work inside 50 words.
**Best in:** formats: Explainer, Educational, Reportage, UX Writing, Carousel, Long-Form Non-Fiction | genres: Journalism, Science, Educational, Heritage, Medical, Historical
**Avoid when:** The material has no natural second layer and the expansion is padding — an accordion that opens onto a restatement teaches the reader that opening things is a waste, and they stop. Also avoid it in audio and in installation pieces with no interface to tap; there the layering has to be done by sequence and by voice instead. And avoid it when the two layers say different things: that is not depth, it is a retraction with a lid on it.
**Example:**
> **The canal was dry by 1968. ▸**
>
> *(expanded)*
> Three residents put it earlier, in 1961. The Directorate's gauge records show water until March 1968, and we have used the records. Where the two disagree we have said so; we have not split the difference.
>
> ▸ *Read the 1968 gauge sheet (PDF, 2 pages)*
**Source:** reference — museum interpretation practice; a convention of the trade rather than a single published study
**Yields to:** `inter.boxed_read_aloud` — Installation or audio with no interface to tap.
`inter.depth_on_demand`
### The Meaningful Choice Test
**Also called:** the three-question test, consequence auditing, choice validation
**What it is:** A pass over every choice asking three things: can the player tell what they are choosing between, do the options lead to materially different text, and does the difference persist past the next screen.
**Effect on the audience:** Nothing directly — this is a tool. What it protects is the player continuing to take choices seriously, which is the resource everything else spends.
**Used for and where it works best:** Run it after the first draft branches exist, not before. Two of three is usually acceptable; zero of three means delete the choice and write the scene straight. The sharpest version applies `scene.value_turn` per option: if both options leave the scene's value in the same place, you wrote one scene and forked the formatting.
**Best in:** formats: interactive fiction, game narrative, visual novel, XR | genres: all
**Avoid when:** The choice is explicitly flavour and the player has been taught to read it as flavour — see `inter.flavour_choice`. Applying the full test to a "what do you order" beat produces bloat, not meaning.
**Example:**
> FAILS: → Say yes. / → Agree. *(same value, same text downstream)*
> PASSES: → Tell her the truth and lose the contract. / → Keep the contract and let her hear it from someone else. *(different value, different text, and the difference is still live in Act 3)*
**Yields to:** `inter.flavour_choice` — The choice is explicitly flavour and read as flavour.
`inter.meaningful_choice_test`
---
### The Choice With No Good Option
**Also called:** the dilemma, the tragic choice, lose-lose, the impossible decision
**What it is:** Every branch costs the player something they have been made to value, and no branch is the clever third way.
**Effect on the audience:** They stop playing to win and start playing to live with it. This is where interactive fiction does what no linear form can: it makes the reader responsible.
**Used for and where it works best:** Act climaxes, and any theme about compromise or complicity. Two rules, both non-negotiable: build the value first — you cannot make someone choose between two characters they met four minutes ago — and never write the secret best option. The moment players learn a perfect path exists, the dilemma becomes a puzzle and the guilt evaporates. Pairs directly with `theme.moral_test` and `tens.shrinking_options`.
**Best in:** formats: game narrative, IF, educational | genres: tragedy, war, political drama, horror, medical drama
**Avoid when:** The player has no information. A dilemma made of unknowns is a coin flip, and a coin flip produces resentment, not guilt. They must be able to predict the shape of both losses.
**Example:**
> The generator will run one of them until morning. Not both.
> → The ward. *(Forty strangers. Yusra is in the annexe.)*
> → The annexe. *(Yusra. And forty strangers in the ward.)*
> There is no third option and the game does not pretend to look for one.
`inter.no_good_option`
---
### Delayed Consequence
**Also called:** the long fuse, the sleeper flag, deferred payoff, the slow-burn choice
**What it is:** A choice sets a flag that produces no visible effect for a long stretch, then lands hard, far from the point of decision.
**Effect on the audience:** The single strongest producer of "this game is really tracking me". It also defeats save-scumming, because by the time they see the cost they cannot find the cause.
**Used for and where it works best:** Any piece longer than an hour, and essential to anything about the past catching up. The craft rule: when the fuse burns down, name the original moment explicitly. An unattributed consequence reads as an authored twist; an attributed one reads as their own doing. One line is enough — "the man from the ferry" — and the whole early scene re-lights.
**Best in:** formats: interactive fiction, RPGs, serialised interactive drama | genres: crime, political thriller, family saga, horror
**Avoid when:** The runtime is short, or the player will play in fragments across weeks. A fuse longer than the player's memory is just an arbitrary event, and mobile sessions break memory faster than writers expect.
**Example:**
> CHAPTER 1: → Give the ferryman your real name. *(no visible effect; sets `name_known`)*
> CHAPTER 9: The inspector reads from a list. "Six passengers. Five gave names I can't trace." He looks up. "You were the polite one."
**Yields to:** `inter.state_flag` — Short runtime or fragmented play breaks the fuse.
`inter.delayed_consequence`
---
### The Illusion of Agency
**Also called:** perceived agency, soft railroading, the velvet corridor, apparent choice
**What it is:** The player is offered a decision whose outcome is largely predetermined, and the piece invests instead in making the approach, the tone and the aftermath differ, so the corridor never shows its walls.
**Effect on the audience:** If done well, the memory of having chosen — which is what players actually carry out of a story, not the branch count.
**Used for and where it works best:** Anywhere production reality forbids real branching, which is most places. The rule that makes it honest rather than cheap: give the illusion to *how*, never to *whether*. Let the player decide the manner, the words, the order and who they were while it happened; keep the event fixed. The moment you fake the *whether*, you are one reload away from being caught.
**Best in:** formats: AAA narrative games, interactive film, immersive theatre | genres: action, sci-fi, adventure
**Avoid when:** The piece invites comparison. Wikis, streamers and second playthroughs all exist. If your marketing promised branching and your structure is a corridor, the illusion does not fail quietly — it fails publicly and retroactively, poisoning the choices that were real.
**Example:**
> Both options end with the door breached. Only one of them ends with it being your idea.
> → Kick it. *("Three seconds," you say, and do not wait for an answer.)*
> → Let Teodor kick it. *(He looks at you. You nod. He will mention this later, twice.)*
**Yields to:** `inter.branch_and_bottleneck` — The piece invites comparison; buy one real branch.
`inter.illusion_of_agency`
---
## Memory, State and the World as Text
### Writing for the Skipper
**Also called:** layered delivery, skip-proofing, optional-depth writing, the two-tier scene
**What it is:** Structuring information so the mandatory layer carries everything the player must have and the optional layer carries everything that makes it good — knowing a large share of the audience is holding the skip button.
**Effect on the audience:** Both audiences get a coherent experience: the skimmer is never lost, the reader is rewarded, and neither is aware the other exists.
**Used for and where it works best:** Anything with optional content, long dialogue, or a second playthrough. The rules: never put a required fact only in optional text; front-load the spine of each scene into its first two lines, because a skipper's decision is made there; and make skipping visible to the fiction where you can — a character who notices being cut off is better than one who does not.
**Best in:** formats: games, visual novels, interactive fiction, educational | genres: all
**Avoid when:** The piece is short and its whole value is the prose. Layering a ten-minute story makes it a five-minute story with footnotes.
**Example:**
> MANDATORY LAYER: "The bridge is out. The ford is three hours south. Choose."
> OPTIONAL LAYER *(ask about the bridge)*: "It was my grandfather's contract. Eighty years. They'll say the river took it." He scrapes at the rail with his thumbnail. "The river had help."
> Nothing in the second paragraph routes the player. Everything that makes the man a person is in it.
**Yields to:** `inter.depth_on_demand` — Non-fiction, where every layer must independently be true.
`inter.skippable_layering`
---
SHA-256: 428ddc3b0b1aa204ac6d343cdf660745cf81921d92626d90a2fdf025a3a6a73e