FORKC_TRANSITIONS_BRIEF_2026-07-27.md

pipelines/FORKC_TRANSITIONS_BRIEF_2026-07-27.md

FORK C — THE DECISION BRIEF

The challenge (Josh, 2026-07-27): *"why does it need a map change cover instead of a playable

loading transition?"*

Scope: the Flores→Bali→Sumatra seams + the CH_05 four-map belt. Synthesis of three analyses

(engine reality · design precedent · canon travel), after an independent adversarial pass over every

load-bearing claim. Per the standing decision protocol: options, deep-dive, adversarial, a

RECOMMENDATION, the strongest objection, and a falsifiable re-open trigger.

---

§0 ADVERSARIAL PASS — WHAT SURVIVED, WHAT DIED

I re-derived every claim the recommendation rests on. Claims confirmed by my own read are marked

[V] with the line I read; claims I corrected or downgraded are called out in full.

0.1 CONFIRMED — the engine spine of the argument

claimverified at
PresentTravelCard() is a UE_LOG and nothing else — there is no cover todayHumanityQuestSliceDriver.cpp L354-365, read in full [V]
Zero loading-screen / streaming / seamless-travel code in the project`grep -riE "loadingscreen\streamlevel\seamlesstravel\movieplayer\LoadPackageAsync\LoadLevelInstance" Source/ Config/0; positive control OpenLevel` → 28 [V]
TransitionMap unset; only EditorStartupMap / GameDefaultMap setConfig/DefaultEngine.ini L3-7 [V]
Only two cross-map seams: CH_03→04, CH_04→05IsCrossMapSeam L66-70 [V]
The CH_05 four-map belt is not seamed at allcode comment L51-53: *"a further seam layer, not this pass"* [V]
UE 5.8 primitives existWorld.h:4243 SeamlessTravel, :4246 IsInSeamlessTravel, :4254 SetSeamlessTravelMidpointPause [V]
FACT 1 — destination loads async while the transition world ticksWorld.cpp:8492 LoadPackageAsync [V]
FACT 2 — source → transition → destination; the two big maps are never co-residentWorld.cpp:8338 bSwitchedToDefaultMap=true:8347 StartLoadingDestination(), guarded :8508 [V]
FACT 3 — the mechanism ships with zero content: an empty TransitionMap makes a dummy worldWorld.cpp:8367-8370 if (TransitionMap.IsEmpty()) … CreateWorld(...) [V]
Midpoint pause is the hold lever on slow storageWorld.cpp:8440-8450 gates StartLoadingDestination [V]
UHumanityStatusSubsystem : UWorldSubsystem — dies every map changeheader L49 [V]
UWorldStateSubsystem : UGameInstanceSubsystem — survivesheader L27 [V]
Region maps are monolithic, not World Partitiongrep -ac WorldPartition: Flores 0, Angkor 0; positive control LiangBua (retired smoke map) 3; __ExternalActors__/Maps/ holds only LiangBua [V]
Map sizesAngkor 377,431,173 B, Flores 80.7 MB, Bali 28.1 MB, Samosir 225 KB, Palembang 192 KB [V]
Angkor load timesmeasured 10.84 / 20.02 / 20.58 / 24.09 / 31.35 s — median 20.58 s; Flores 3.06-15.26 s [V]

0.2 CONFIRMED — the canon spine

claimverified at
CH04_B12 casts the player as crew, not cargobuild/spine_rows/CH_04/beats.csvrole=exit, mode=traversal, site=uluwatu_seacliff_temple, actors=protagonist;CHAR_0029, player_objective="Wayan Dwija's boat goes west on the turning tide, and he will take a passenger who can hold a rope." [V]
kra_traverse is a site with a dialogue functionCH_05/sites.csv: coastal,traversal;dialogue,low,baseline,none,false,"the Kra crossing, where the cargo walks" [V]
78 authored seamsgrep -h "^- Passage\." docs/spine/transitions/*.md78 across 8 files (79 nodes = 78 seams; coherent) [V]
chapter_bridging_cinematicDT-3's designated home does not exist as datapositive control PASSED: 11 real scene_type values arc-wide (per_chapter_cutscene 203, boss_encounter_resolution 91, canonical_set_piece 36, ambient_cinematic 21 …); chapter_bridging_cinematic is not among them [V]
Player owns no watercraft at Ch 3-5T0_Vehicle_Registry [DRAFT v0.1]: 3 rows; VH_002 Coastal Skiff acquisition_chapter_id=CH_08; VH_003 Caravel CH_33 [V]
Walked geographyWGM L993 *"walking, riding, river and coastal sailing"* [V]
The Ch-55 transformationWGM L985 *"no longer constrained to walking or sailing"*; L764 free travel [V]
Watercraft is post-79DOMAINS_VEHICLES… L1/L3 *"capture now, heavy-build after all 79 chapters are built"*; §7 C5 *"Confirmed."* [V]
Presentation doctrine never ruledDESIGN_GAP_REGISTER.md #29 [V]
Fork A ruled continuity-by-defaultcommit 0812633 [V]
FLAG — CH_05 arrival mismatch is REALMapForChapter("CH_05")="/Game/Maps/SamosirToba" (comment: *"the CH_05 ARRIVAL map"*), but CH05_B01 seq 1 site = borobudur; samosir_highlands is CH05_B05, seq 5. The seam lands the player at the chapter's fifth site. [V]

0.3 DIED — a claim asserted without a code read

The design analyst's "World Partition is configured in DefaultEngine.ini L80-81" is FALSE.

Those lines are:

[/Script/WorldPartitionEditor.WorldPartitionEditorSettings]
CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet'

That is UE boilerplate present in every project — it names the *conversion commandlet class*, it does

not enable World Partition on anything. Verified against the packages themselves: Flores and Angkor

have zero WorldPartition hits; only the retired LiangBua_TerrainSmoke smoke map is WP. The

engine analyst's read is correct and the design analyst's caveat built on it ("T0/T1 continuity may

require a topology change") rests on a false premise — though its *conclusion* survives for a

different and true reason: the regions are separate .umaps.

Consequence for the brief: World Partition is not a live variable in this fork. It is a

worthwhile, separately-justified optimisation of each region map (it is the actual fix for Angkor's

20.58 s), but it does not remove a single seam and must not be costed as if it did.

0.4 DOWNGRADED — a canon claim resting on a same-day proposal (circularity)

The canon analyst cites PRESENTATION_DOCTRINE §4.1 / §4.2 / DT-1…DT-5 as though binding. It is

docs/proposals/PRESENTATION_DOCTRINE.md, header: *"Tier: PROPOSAL … nothing here enters a build pack

until Josh rules the three forks in §0"*, authored 2026-07-27 — i.e. **the very document that

raised Fork C.** Its §0.C is titled *"FORK C — the loading screen's standing"* and carries the

ESCALATED — Josh, 2026-07-27 note quoting this exact challenge.

So "the doctrine's own taxonomy already names the answer" is **not corroboration — it is the

proposal restating itself.** I have downgraded every doctrine citation to *"the proposal anticipated

this"* and re-grounded the argument on the independent authorities, which do hold on their own:

CVD Layer 1.5, WGM §10/§11, beats.csv, sites.csv, HL_0043/HL_0044, T0_Vehicle_Registry.

The canon case survives this downgrade intact — it never needed the doctrine.

0.5 CORRECTED SIZING — the "state-carry is the real cost" claim is half right

The engine analyst is right that neither savegame persists player state and that today every

cross-map seam silently resets health, vril, cooldowns, status effects, the gather ledger, and

position — invisible under a cover, on screen under a playable transition. Confirmed:

WorldStateSaveGame holds only TMap<FGameplayTag, FWorldStateValue> State + SaveVersion [V].

But the cost estimate should be split, because the two halves are an order of magnitude apart:

new tags, not a new savegame class, not a schema change, not an FK. This is hours, not days.

subsystems (UHumanityStatusSubsystem, UHumanityGatherLedger, UHumanityAudioSubsystem) must be

promoted or handed over, and the pawn + ASC must ride the keep-list. That is genuine engineering.

Stating it as one undifferentiated block overstates the barrier. It is **one real item and one easy

item**, and we owe both anyway the first time a player dies and respawns across a boundary.

0.6 UNVERIFIED — flagged, not used as a budget number

The design analyst's seam-class split (26 water / 19 Vimana / 8 dimensional / 9 within-realm / 10 land

/ 6 other). The denominator is confirmed (78 [V]); the per-class counts are their

classification and I did not re-derive them. Since the "3 rigs cover 78 seams" affordability claim

rests on this split, it must be **mechanically re-derived from the - Passage. lines before it

becomes a budget number.** It is cheap to do (scriptable, zero-token) and it is listed in §5 as a

prerequisite, not an assumption.

---

§1 THE HONEST ANSWER TO JOSH'S QUESTION

1.1 Why the cover exists today

It was never designed. It is a plan-item default plus a stub, and no one ever ruled it.

Three things happened, in this order, and none of them was a design decision:

1. PRE_5090_BUILD_PLAN_VOL2.md U11.26 was written as *"Loading / level-streaming /

transition-screen UX — loading screen + hitch-masking across the Flores→Bali→Sumatra map

changes."* That is the engine-default framing of a map change: a map change needs a loading

screen. It was authored as an infrastructure item, not a presentation ruling.

2. PG-2 needed the seam not to be silent, so it shipped the cheapest possible placeholder —

PresentTravelCard(), a single UE_LOG [V] — whose own comment defers the real thing to

another workstream and explicitly leaves the seam *"for a later capture/scene layer to hang off."*

3. The presentation doctrine did not exist until today. DESIGN_GAP_REGISTER #29 records it as a

DOC-STUB, *"never ruled — named a Josh gap twice"* [V].

So the honest answer to "why does it need a cover" is: it doesn't, and nothing ever said it did.

Josh is not challenging a shipped decision — he is asking the question at the only moment it is free.

Sunk cost is exactly zero. Nothing is thrown away by choosing the playable transition.

1.2 There is also a terminology collision worth naming

The doctrine's §4 already makes the diegetic cover the default and the screen the fallback, and

its strongest listed cover class is *"THE CROSSING — a passage the player is genuinely making — the

ship's deck, the river boat, the mountain pass … loopable by construction."*

That is a playable transition. The word "cover" is doing damage: Josh reads it as *screen*, the

doctrine means it as *anything diegetic that can hold*. Two consequences:

object at these seams.

the screen-first framing Josh is right to challenge. The plan item and the doctrine had already

drifted apart; the challenge catches the drift.

Recommendation carried into §5: retire the word "cover" for the diegetic tiers. Call them

TRAVERSALS; reserve "cover" for the screen. Naming the fallback and the default with the same word is

how a team ships the fallback.

1.3 Does the reason survive scrutiny?

Mostly no — with one real residual.

What does not survive:

architecture. UWorld::SeamlessTravel goes source → tiny transition → destination

(World.cpp:8338/8347/8508 [V]), so the two big maps are never co-resident. Peak memory ≈

max(region map) + vessel — essentially the same peak OpenLevel already pays today. The

double-occupancy cost belongs to level-instance streaming, which we would not use. The floor

objection dies against the path we would actually take.

mechanism lands with an empty TransitionMap and a dummy world [V] — art decouples completely

from plumbing.

traversal beat with the captain as an actor [V]), the route (CH05_B07), the landfall

(CH05_B01), and one leg as a site with a dialogue function (kra_traverse [V]). Only the

open-water *middle* is blank.

constrained to walking or sailing"* **one of three structural transformations in the entire

79-node arc, gated to Ch 55 [V]**. A cover at the Ch 3→4 seam hands the player the *felt

experience of instant arrival* in the tutorial band — spending the arc's second-biggest structural

payoff 52 chapters early.

What does survive — the residual, and it is real:

Angkor's measured median is 20.58 s, on uncooked, empty greybox, on NVMe, single-threaded

(the editor runs Async Loading Thread: false), on a monolithic non-WP 377 MB map [V]. On a

Steam Deck's eMMC, content-complete, that is worse before it is better. **No traversal design holds a

player's attention indefinitely, and a cover that ends before the stream completes must yield to

something.** A fallback screen must exist. The doctrine's own Option 3 ("no screen at all") is

correctly rejected as unsurvivable.

Net: the *default* should invert — playable first, screen as the yield-target. The screen does not

disappear; it stops being the design.

---

§2 THE OPTIONS

Costed on four axes: engine cost · content cost per the 77-chapter factory (the number that

actually decides this — 78 seams, not 3) · canon fit · Fork-A continuity fit.

Option 1 — STATUS-QUO COVER (U11.26 as written)

OpenLevel + a loading screen at every region boundary.

Cheapest on the board. Nothing new breaks: ws.* already carries [V].

This is its only real strength, and it is a genuine one.

spends the WGM §10 Ch-55 transformation early; strands the seams' authored content (Shell's first

water leg, Kira riding the passage) with nowhere to live, because DT-3 forbids the cover from

carrying seam meaning and its designated home chapter_bridging_cinematic **has zero rows

arc-wide [V]; and it is the only** form that occupies four HL_0043/HL_0044 surfaces at once

(UI + narration + art direction + score). The sharpest concrete hazard: a water/falling-water motif

on the Bali→Sumatra card would pre-frame the Borobudur waterfall cue that CH05_B01 plants as

pure sensation one beat later, payoff Ch 76-77.

maximal discontinuity, applied at the arc's 78 most geographically meaningful moments.

Option 2 — RITUALIZED THRESHOLD (playable bookends, middle elided)

Play a short departure (walk to the quay, board, the last look back) and a short arrival (up the beach

into the new region). The voyage middle elides.

screen, Josh's challenge is only half-answered. If it is seamless travel, this is Option 3's

mechanism with less content.

is a site, not a rig. Reuses region geometry already owed.

leaves the middle blank — a rung-2 card over *the middle only*, lifting its line from the exit

beat's existing player_objective, is a truthful presentation of something canon deliberately

declined to write. Zero new authorial voice — which satisfies the Natural Voice Doctrine by reuse.

asset is not yet built. It is also the correct *frame* around every richer tier.

Option 3 — PER-SEAM PLAYABLE LEG (seamless travel + authored conveyance)

UWorld::SeamlessTravel + a TransitionMap; the player keeps full character control on a moving deck

while the destination streams.

work (cheap serialization + real live handover), plus three named integration items:

driver is a UTickableWorldSubsystem — under seamless travel it fires on the transition world

and would consume the pending seam in the vessel, leaving the destination with nothing. Gate on

map identity or move consumption to PostSeamlessTravel.

getting this wrong is BUG-0017 (a capture-drive state-blindness class caught by a **director frame

re-read**, not by tests that were green 27/0).

OpenLevel entirely.

not affordable and should not be attempted. The affordability argument depends entirely on

amortisation by seam class — and that split is currently unverified (§0.6).

(VH_002 is CH_08 [V]) and has no navigation trade, so canon casts the player as **crew on an

NPC's boat** — *"a passenger who can hold a rope"* [V]. What that requires is a **walkable deck,

a captain (CHAR_0029, already rowed), a familiar, and a horizon.** No ocean sim, no buoyancy, no

steering, no naval combat. It is reveal-safe *by construction*: with no narrator, it can only show

what a nine-year-old on a boat can see.

to solve the slice's two seams inverts his own sequencing.

the wrong unit.

Option 4 — TIERED TRAVERSAL (playable where content exists; the mechanism is universal, the treatment is assigned) — RECOMMENDED

Build Option 3's mechanism once, universally. Then type each of the 78 seams into one of four

treatments, in the transitions doc the seam already lives in. The player never sees a screen except

as a yield-target.

tiertreatmentapplies toasset cost
T0 — CONTINUOUSno transition; keep walkingsame-map seams; the Ch 70-77 within-realm seams (canon: *"no spatial move"*)zero
T1 — THRESHOLDa walked connector hiding the stream; companion talkscanon's beat-free traversal connectors (kra_traverse, passes, defiles); short hops via Option-2 bookendsone corridor kit, re-skinned
T2 — CONVEYANCE (on-rails deck)full character control on a moving platform; the craft drives itselfthe water seams (Ship) + the Vimana seams (a required build anyway)one rig, few skins
T3 — RITUAL ELISIONplay the departure, the middle elides to the journal, play the arrivalmulti-month legs; any destination exceeding the stream budget (Angkor)the journal screen

78 existing entries, script-emitted from the - Passage. lines — zero-token) plus *optional*

dressing. T0 costs nothing. This is the only shape that is honest at 78.

tails and authored routes; elide only the middles canon left blank).

justified exception** rather than a silent engine default.

follows a spline. The player walks the deck, talks to the captain, watches the coast — **and cannot

steer.** None of the post-79 Watercraft scope (build/repair ladder, navigation technique, naval

combat, ocean sim, module registry) is touched. **Josh's deferral is honoured; the deferred asset is

pre-earned** — when the real Watercraft lands post-79, the deck rig becomes its interior. That is

the engine-as-reuse-machine posture, not a duplication.

---

§3 THE SLICE'S THREE SEAMS vs THE FACTORY RULE

The slice has three seams (NextChapterFor: CH_02→03→04→05 [V]), and they are not the same

problem. Treating them identically is how this gets over-built.

seamwhat it is todaywhat it should dowhy
CH_02 → CH_03same-map quest reload on FloresIsland; not a cross-map seam [V]T0 — CONTINUOUS. Nothing. No card, no screen, no travel.It is already continuous. Any presentation here is invented discontinuity, and Fork A forbids it. This one is free and should be claimed immediately.
CH_03 → CH_04 (Flores→Bali)real OpenLevel; Bali median 3.18 s, Flores 5.91 s [V]T2 — the walkable deck. The prototype.The measured load is short enough that a deck loop comfortably covers it. Canon names it *"the range's first water leg"* and stages Shell's first passage as a chosen bond — content a card cannot render. Constraint: concealment pressure is HIGH here; the child stays hooded — which is the seam's own tension, free.
CH_04 → CH_05 (Bali→Sumatra)real OpenLevel to SamosirToba [V]T2 — the captained voyage, and fix the arrival first.Canon already wrote the boarding as a typed traversal beat with the captain as an actor and the player as crew. BLOCKER: the seam lands on SamosirToba, but CH05_B01 seq 1 is borobudur; Samosir is beat 5 [V]. We are currently teleporting the player into the middle of the chapter. Reveal hard-constraint: no water / falling-water imagery on this transition — CH05_B01 plants the Borobudur waterfall cue as pure sensation one beat later (HL_0043, payoff Ch 76-77).

The CH_05 four-map belt is a fourth, unbuilt layer, not a slice seam — the driver says so

[V]. It is also the best prototype ground in the project: three of its four maps are tiny

(Samosir/Palembang are 128×128 stubs, ~1.7 s loads), nothing is being replaced, and it yields two seam

classes at once (riverine + the already-canon kra_traverse portage). **Angkor — 377 MB, 20.58 s

median — is the stress case to validate against LAST, and it is the one seam in the slice that should

be typed T3 from the start.** Note the belt's canon route also doubles back (local.doubled_back),

so the staged linear samosir→palembang→borobudur→angkor order is itself wrong.

THE FACTORY RULE (what generalises to the other 75 seams):

Continuity is the default; a screen is a yield-target, never a destination. Every seam is typed
T0-T3 in its transitions entry. T0 is free and is the presumption — a seam must *earn* a
treatment by being a real journey in canon. Where canon authored the leg, it is played; where canon
left the middle blank, the middle elides; the screen appears only when the stream outruns the
traversal, and when it does it lifts its line from the exit beat's existing player_objective
rather than composing new narration. No seam is ever authored per-seam in engine — the mechanism
is universal and the tier is an assignment.

---

§4 RECOMMENDATION

**Adopt Option 4 (TIERED TRAVERSAL), built on Option 3's engine-native mechanism
(UWorld::SeamlessTravel + TransitionMap), with the screen retained as a genuine, quality-built
fallback.**
Josh's challenge is correct, and it is cheaper than it sounds — because the expensive thing he
is assumed to be asking for (two big maps resident at once) is *not* what the engine-native path
does, and the expensive content (per-seam authored voyages) is *not* what the factory rule asks for.
Ship order: (1) the mechanism with an empty TransitionMap — it works with a dummy world
[V], so plumbing lands before any art; (2) CH_02→03 as T0 immediately (free); (3) the
CH_05 belt as the T1/T2 prototype (small maps, nothing to replace); (4) the two slice water
seams as T2; (5) Angkor as the T3 stress case, validated last.

Why this and not the others: Option 1 is the right fallback but contradicts Fork A at 78 points

and strands authored content that has no other home (DT-3's carrier has zero rows [V]).

Option 2 is a tier, not an architecture. Option 3 is the right mechanism with the wrong content unit.

Option 4 is the only shape whose per-seam marginal cost is an assignment rather than a build,

which is the only property that survives the 77-chapter factory.

The strongest objection

**"You are building a vehicle to solve a loading problem, and Josh ruled Watercraft is post-79 — and

you are doing it before the P0 benchmark harness exists to measure any of it."**

This is the objection with real force, and it has two teeth. Answer to the first: the on-rails

deck is a *transition space* that shares the Watercraft's geometry, not the Watercraft *system*; none

of the excluded scope is touched, and the deferred asset is pre-earned rather than duplicated.

The second tooth I cannot fully answer, and it should shape the ruling: every performance

statement in this brief is an editor number on uncooked, empty greybox — no cooked build has ever

been produced (Saved/Cooked and Saved/StagedBuilds are both absent), and the Deck floor is

*declared, not ratified*. This is why the recommendation is sequenced mechanism-first, art-last:

the plumbing is defensible on architecture alone (FACT 2 makes it memory-neutral [V]), while every

content commitment beyond the prototype waits for the first cook.

A second, honest objection: the ME1-elevator failure case. A traversal that carries no

relationship is *worse* than an honest load screen. Our seams already carry authored relationship

content — but that content is currently prose in the transitions doc, not rows in beats.csv. If the

tiering lands without moving that content into beats, we build the elevator and not the boat.

The falsifiable re-open trigger

Re-open Fork C toward Option 1 (screen-first) if any of these is measured true:

1. After the first cooked build, a T2 deck cannot hold 60 fps at the steam_deck_minimum budget

*while streaming* the destination — i.e. the traversal cannot coexist with the load it is hiding.

2. **The tier split, once mechanically re-derived (§0.6), shows fewer than ~60 of the 78 seams landing

in T0/T1** — i.e. amortisation fails and the "few rigs" premise was wrong.

3. The T2 moving-platform character-attachment spike fails or needs a bespoke movement mode per

craft — i.e. the deck is a system, not a space.

4. Conversely, re-open toward a first-class reading surface (the doctrine's Option 2) if the

post-cook streaming profile shows the fallback firing routinely on target hardware — at which

point "pure fallback" is a fiction and the screen deserves real design.

Each is measurable, each has an owner, and each would change the ruling rather than merely annoy it.

---

§5 WHAT IS ACTUALLY REQUIRED — SIZED HONESTLY

Free / zero-token, do regardless of the ruling:

currently n/a across all 21 soak runs. Converts every memory claim in this fork from reasoning to

measurement. *(Caveat: the dev box reports 15.6 GB physical with ~1.5 GB free — it is the wrong

instrument for a floor measurement, but right for leak detection.)*

*"World-Partition maps."* It is false [V] and will mislead a later agent.

affordability number; it must not stay an estimate.

(Borobudur), not its fifth [V]. This is a canon-fidelity defect independent of the fork.

The mechanism (build once — the real engineering):

ASC), companions, and camera. This is what the keep-list is *for*.

callback. Design every traversal as a loop with an exit cue, never a fixed-length cutscene — that

turns slow storage into a pacing variable instead of a failure.

await_arrival station). BUG-0017 is the precedent for what happens when the capture drive is blind

to state.

entirely, so the actual travel has zero automated coverage under any option.

State carry (split per §0.5):

UHumanityAudioSubsystem; carry pawn + ASC on the keep-list.

green 21/21 proves nothing about any transition, and seamless travel's world-teardown-with-

survivors is a classic leak site.

Spikes to run before committing content (each small, none needs a 5090):

1. Moving-platform character attachment — the single technical gate on T2. Two known approaches;

one spike settles it. Do this first.

2. Save on a conveyance — mitigated by canon, not engineering: **conveyances are non-save zones;

the vril-site sanctum on either side is the save anchor**, which is what canon already says the well

is for. Clean constraint, zero invention.

3. Streaming budget — proposed rule for the perf register: a traversal space is budgeted at

~30% of a normal play space's render cost, because the other 70% is the stream.

Content (the factory work, deliberately last):

this is the anti-ME1 requirement and the highest-value content item in the fork.

CH_08 [V] — there is no vessel row for the Flores→Bali crossing. A canon-author item,

landing inside window-plan rank 21.

House-of-Velheim antagonist-agent term. Use Watercraft (system) / Ship (player-facing).

line lifted from the exit beat's player_objective — never composed, never a tips rail, never

mode taxonomy. Josh's own instinct for a richer surface is better served by the journal (live

from Ch 13, already a plot object, W10 already ships book screens) than by a loading screen.

The reveal contract, binding on every tier at these seams. MAY show: the boat, the captain, the

water, the coast, the weather, Shell in the water, Kira on the air, the hooded child, the crew, the

port. MAY NOT: name or pattern the family; narrate a thesis; carry Grand-Sage-adjacent art direction

or score; use falling-water imagery immediately before CH05_B01; render substrate/vril

perception; draw a route on an unwalked map; state elapsed time or age; expose the protagonist's

features at HIGH concealment pressure; hint the Child Familiar; carry mode taxonomy.

Where the ruling lands: docs/proposals/PRESENTATION_DOCTRINE.md §4 + §0.C (Fork C), with the

tier taxonomy added to docs/TRANSITION_TREATMENT.md as Layer 2b, and U11.26 rewritten from

"loading screen + hitch-masking" to the mechanism + tiering. **This should be ruled before CN5.2

bakes camera blocking into 11 templates** — because the tier a seam gets determines whether its

template needs an arrival camera at all.

---

§6 PROVENANCE

Independently verified this pass ([V] above): HumanityQuestSliceDriver.cpp L40-75, L340-410;

HumanityStatusSubsystem.h L49; WorldStateSubsystem.h L27; WorldStateSaveGame.h L22-27;

Config/DefaultEngine.ini L3-7, L80-81; Content/Maps/*.umap sizes + WorldPartition scan;

Saved/QA/capture_run*.log load times; UE 5.8 World.h L4243/4246/4254 and World.cpp

L8322-8521; build/spine_rows/CH_04/beats.csv, CH_05/{beats,sites,scenes}.csv, arc-wide

scene_type tally; docs/spine/transitions/*.md (78 - Passage. lines);

registries/T0_Vehicle_Registry [DRAFT v0.1]/Sheet1.csv; T1_World_Geography_Master [ACTIVE v2.3]

L764/985/993; docs/proposals/PRESENTATION_DOCTRINE.md (tier header, §0.C, §4.2, DT-1…DT-6);

docs/proposals/DOMAINS_VEHICLES_AND_ENRICHMENT_BACKLOG.md L1/L3/§7; docs/DESIGN_GAP_REGISTER.md

#29; commit 0812633.

Synthesized from: forkc_engine_reality.md, forkc_design_precedent.md, forkc_canon_travel.md.

Corrections applied to the analysts' claims are recorded in §0.3 (a DefaultEngine.ini claim that

died), §0.4 (a circular doctrine citation, downgraded), §0.5 (a cost estimate split), and §0.6 (an

unverified count flagged as a prerequisite rather than an assumption). AAA precedent claims are

general shipped-title design knowledge, stated factually, not quoted.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root