CONCEPT_ART_PROGRAM.md

assets/CONCEPT_ART_PROGRAM.md

THE CONCEPT ART PROGRAM

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order: docs/DOC_MAP.md § 0.
Canon served (HAND-WIDENED, then scanned from this document's own citations — widen it by hand where it is thin):
docs/spine/CH_NN.md § Asset anchors — per node (e.g. docs/spine/CH_02.md L226, the Flores board's contents, already typed and id'd) · CVD §12 · CVD §17 · T1_Architecture_and_State · T1_Build_Pipeline_Contracts · T1_Combat_System_Spec · (+4 more tier) · T0_Ability_Tree_Registry · T0_Antagonist_Network_Registry · T0_Asset · T0_Boss_Attack_Rail · (+47 more t0) · _source/02_Tier_2_Region_Pages/angkor_khmer.md · _source/02_Tier_2_Region_Pages/bali.md · _source/02_Tier_2_Region_Pages/central_africa_congo.md · (+9 more region)
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect — fix the
document, never the canon. Nothing here is applied until it is ratified into canon.
Status: PROPOSAL-TIER (LANE-CANON). v1.1 — THE DENSITY MODEL, 2026-07-29.
v1.0 answered Josh verbatim: *"you'll need concept art for every region, layouts, architecture,
fauna, herbs and art, npcs, bosses, foliage, rifts, magic, weapons, monsters, etc. Not sure if
you've done a deep dive on this to really structure out what's needed so we're prepared for the
build with the box."* The box arrives ~2026-07-30.
v1.1 exists because Josh read v1.0's derived totals and ruled them THE START, verbatim:
*"how many npcs per village, how many in adventuring or neighboring villages and cities, how many
enemies, how many herbs and foliage and trees? How many building and landmarks? Etc. what about
your companions, different armor and outfits and weapons (our 72 weapon types are just types and
they have an entire tiered system with cultural namings and legendaries and abilities) and rarities
for each region? What about all the trades and side quests and supernatural and mythological
creatures and all of the art pieces?"* — then, mid-build: *"Not everyone has the same house. Where
are the trades? City monuments and art?"* and *"Make sure everything you're doing can be consumed
autonomously by the pipelines."*
What v1.1 adds: §6 THE DENSITY MODEL — a unit-economics formula per class (D1), the revised
floor/target totals (D2), the missing-input register (D3), and the variant-axis multipliers with an
explicit cheap-versus-expensive verdict (D4). §7's totals become FLOOR→TARGET bands. §9 proposes
the BOARD MANIFEST schema so approvals flow back into the pipelines with no human transcription
step, and the model ships as density_model.csv + density_model.json beside this file.
THE LAW OF THIS DOCUMENT, restated for v1.1: every class gets a formula grounded in a RULED
canon source. Where canon rules no number yet, the model NAMES THE MISSING INPUT and its future
home — it never guesses. Derived-not-guessed applies to every multiplier, including every one that
would have been convenient to assume. Two classes come out of this pass with NO FORMULA AT ALL, and
that is the honest answer rather than a padded one.

0. WHAT THIS IS, AND WHAT IT DOES NOT RE-RULE

This is the ARC-WIDE program: the taxonomy of every concept-art class the build needs, the derived

size of each, the board format Josh reviews, the sequencing against the ruled build order, and the

generator routing from the already-ruled stack.

It does not re-rule the realm program. docs/proposals/REALM_DESIGN_PROGRAM.md (1702 lines,

PROPOSAL, DOC_MAP line 330) already rules the choice-board format for the ELEVEN realms, and

docs/pipeline_review/REALM_ANALYSIS_ART_PIPELINE_2026-07-27.md (643 lines) is the analysis it was

synthesized from. This program generalizes that ruled board to the other twenty-three art classes

and sizes the whole. Where the charter has ruled, this document cites and obeys. Where it proposes

beyond the charter, the text says PROPOSED and names the alternative.

Three governing laws bind every section:

count is estimated. Where a class has no countable home, the row says NO COUNTABLE HOME and names

the future source. Section 7 records the method and the positive controls.

implement (docs/proposals/MUSIC_COMPOSITION_DOCTRINE.md §4.0) and the visual application of the

natural-voice doctrine (docs/NATURAL_VOICE_DOCTRINE.md §2). Section 2.4 makes the art board's

citation line the exact sibling of the register card's source-per-row requirement.

contract (docs/ASSET_DROPIN_CONTRACT.md) and becomes the thing the generators are bound to.

0.1 The headline derived answer (v1.1 — floor/target bands)

QuestionDerived answer
Slice denominator14 narrative nodes over 15 chapter×region build legs — RULED, twenty-fourth sitting 2026-07-29. Josh's own hypothesis (*"one chapter is multiple regions?"*) confirmed against the live registry: CH_05 carries sumatra_java + angkor_khmer. The v1.0 arithmetic flag at §5.1 is CLOSED.
Slice density surface12 region pages · 84 zone-catalog rows · 20 settlement-class zones · 88 spine site rows
Distinct art classes the build needs43 density classes (v1.0's 24 taxonomy classes, decomposed to the unit-economics grain Josh's questions require)
Josh-facing decision boards, slice30
Josh-facing decision boards, full game161
Total concept-art plates, slice~2,525 FLOOR → ~3,470 TARGET (v1.0 said ~1,990)
Total concept-art plates, full game~12,800 FLOOR → ~17,880 TARGET (v1.0 said ~8,170) — the decimal place moved; §7.3 states why, honestly
Of the full-game figure, how much is COUNTED8,882 → 12,615 from countable homes (34 classes); 3,917 → 5,261 from labelled ratio projections (7 classes); 0 from guesses
Classes with NO FORMULA POSSIBLE today2 — non-boss enemy classes (D1-12) and per-region cultural weapon skins (D1-24)
Missing inputs named30 classes carry one; 2 are genuinely Josh's (§8.3)
Board mediumPRIVATE WEB PAGES, reused as marketing material after selection — RULED, twenty-fourth sitting. Carries a licence rider: §4.2a
Review cadenceONE board at a time until ~90% first-pass approval, then all remaining at once — RULED, twenty-fourth sitting. §2.6 amended
Care-gated slice sites that may never take a raw-generated Panel A47 of 88 site rows (53%); the zone catalogs agree independently — 46 of 84 zone rows protected true, and 51 of 84 care_tier elevated

---

1. THE TAXONOMY

Twenty-four classes. Josh named twelve; the twelve additions are marked ADDED and each carries its

reason. Per class: what one UNIT is, the derived slice count, the derived full-game count, and the

priority tier.

1.1 The unit vocabulary (fixed, so counts mean one thing)

The charter's structure (REALM_DESIGN_PROGRAM.md §3.2-§3.5). Boards are the only artifact that

reaches Josh; PIPE_ART §5 already rules *"Josh sees only the board's pick line."*

vocabulary (own_capture / museum_open_access / public_domain / licensed / generated_local

/ previz_only; PIPE_ART_2026-07-29.md line 138).

(silhouette, three-quarter orthographic, phase-transform, signature-attack pose with human scale).

A creature sheet is three (silhouette, detail, behaviour pose). An NPC sheet is two (portrait,

costume full-length).

threshold, ornament, ground treatment) drawn as one sheet.

law, the rarity ladder, the Hollow's surface grammar. One pick sets a law that then applies

hundreds of times without another board.

1.2 The twenty-four classes

v1.1 note. This table is the TAXONOMY and it stands. §6's density model DECOMPOSES it to the
unit-economics grain Josh's questions require — 43 density classes, because "NPCs" is really
named-persona plus ambient-bucket plus operative, "weapons" is really silhouette plus grade plus
regional plus legendary, and "architecture" is really kit plus dwelling-variation plus trade-footprint
plus civic-art. The 24 classes are how the work is ORGANIZED; the 43 rows are how it is COUNTED.
Three of the 43 are new classes Josh added mid-build (dwelling variation, trade physical presence,
civic monuments and public art) and they are load-bearing, not embellishment — §6.1.2.

Tier P0 = must exist before the Ch 2 build starts. P1 = rides its chapter leg. P2 = slice-end or

post-slice. P3 = full-game only.

#ClassUnitSlice (derived)Full game (derived)Tier
1Region key art (establishing)BOARD12 earthly region rows + 1 fairy = 1366 boards over 76 region rows (9 revisit rows inherit)P1
2Mood / lighting / weather / time-of-day sets ADDEDSHEET (4 plates)14 nodes keyed on emotional_register (14/14 populated); weather still thin — weather_cycle_profile 4 of 13 region rows79 nodes (79/79 populated); weather 4 of 76P1
3Layouts — zone and site plansPLAN88 site rows (85 distinct ids)380 rows (375 distinct)P1
4Dungeon and rift interiors + entrance mouths ADDEDPLAN + BOARD5 dungeon classes; Class A cardinality exactly 20 arc-wide, NOT slice-scopedsame 20 + open Class B/C/D/E rostersP2
5Architecture kits per cultureKIT14/14 nodes carry the anchor; ~134 named forms (prose upper bound)79/79 nodes; ~875 named formsP0
6NPCs — named personaSHEET (2 plates)100 rows164 rowsP1
7NPCs — antagonist operatives ADDEDSHEET (2 plates)11 rows64 rowsP1
8NPCs — crowd / ambient tiers ADDEDSHEET (2 plates)NO COUNTABLE HOMENO COUNTABLE HOMEP1
9BossesSHEET (4 plates); main bosses also BOARD50 rows = 14 main + 36 sub281 rows = 79 main + 201 sub + 1 environmentalP1
10Creatures and monsters (real fauna)SHEET (3 plates)115 rows150 minted → 420+ RULED (see the note under this table)P1
11Folklore and mythological beings ADDEDSHEET (3 plates)58 named entity tokenscolumn populated 79/79; 12 folklore rows in the creature rosterP1
12Fauna — ambientSHEET (3 plates)26 AMBIENT + 19 ORDINARY_FAUNA inside class 10's 115subsets of the same 150P1
13Flora and herb identification platesPLATE (2: habit + gatherable part)25 rowsNOT SIZED — registry covers only the 4 built regionsP1
14Foliage and biome dressing setsSHEETNO COUNTABLE HOME (terrain_feature_class_ids 4/13)NO COUNTABLE HOME (4/76)P1
15Minerals and materials + gather-node plates ADDEDPLATE19 minerals, 24 gather nodesNOT SIZED — same 4 regionsP1
16WeaponsSHEET (3 plates)2 mapped of the 72 roster (62 rows blank)72 rows, 11 subclassesP1
17Equipment and carried objectsSHEET1 row (EQ_0001 Mother's Amulet)1 row — effectively NO COUNTABLE HOMEP0
18Magic and VFX visual languageLANGUAGE BOARD + variant set6 elements live, 9 distinct element×tier pairs; 18 of 185 abilities mapped31 elements (10 base + 21 hybrid); 248 live variant keys, 372 at the 12-tier clampP0
19Rifts and Hollow surfacesLANGUAGE BOARD1 codex row (HW_0001) + 5 dungeon classessameP0
20FamiliarsSHEET (3 plates)10 rows22 rowsP1
21Realms — the grandest displays3-panel BOARD (fairy = 4-panel)1 (fairy realm, at slice-end)10 realms + earth baseline; ×2 decay = 20 condition setsP2
22Vehicles and mountsSHEET (3 plates)1 (VH_002 Coastal Skiff, CH_08)3 rowsP1
23UI and iconography ADDEDIcon set (LANGUAGE BOARD)13 rarity rows; 4 art-hook columns at 0/1313 rowsP0
24Cinematic key framesKey frame (4 plates)1 scene spec (SCENE_PROLOGUE_OPENING)16 rowsP2

THE CREATURE-SCALE CONFIRMATION (RULED, twenty-fourth sitting 2026-07-29). Josh read class 10's

150 and pushed back, verbatim: *"Only 150 creatures? I thought we were going to have lots like over

400 since we're covering so many regions and then even allow them to breed and get rates and shinies

and hollows?"* He is right and the canon agrees with him: T3_Creatures_Tameable [ACTIVE v1.0]

§1.1 states *"The Beastiary catalogs 420-plus total entries per the tameable-roster scope locked at

T1_Architecture_and_State + T1_Threads"* — the 22 named familiars plus 400-plus non-familiar species.

So 150 is the MINTED-SO-FAR population, never the ceiling, and the ~270-species remainder is

region-driven population work that lands as the cascade and the region pages mature. v1.0 was right

to mark full-game creatures as sized-on-live-rows and to refuse to extrapolate; v1.1 now has a RULED

ceiling to size against instead, so D1-15 carries 450 FLOOR → 1,260 TARGET plates.

The three variant axes Josh named in the same breath — breeding, rates, shinies, hollows — are all

ruled canon and are all art MULTIPLIERS on the species base, not new species. §6.4 (D4) rules on

each: breeding is a runtime parametric blend costing zero plates, the "shiny" axis is the ruled

six-morph rare-variant framework costing a recolour pass, spawn rate costs nothing visual, and the

Hollow axis is a surface-grammar pass already governed by the P0 Hollow language board. This is the

single most important cheap/expensive finding in the program: 420 species is expensive, and 420

species × four variant axes is *almost the same price*.

Five further classes are real work but subordinate to the above, so they are sized here and folded

into their parent rather than given their own board:

ClassSliceFull gameFolds into
Inscription and script glyph plates ADDED21 scripts / 16 spine rows87 scripts / 98 spine rowsclass 5 (architecture) + class 23 (UI)
Festival and ceremony sets ADDED16 rows (4 regions)NOT SIZEDclass 1 (region)
Trade and craft stations ADDED10 trades arc-wide; 2 dwelling classes; 264 housing seeds10 tradesclass 5 (architecture)
Minigame surfaces ADDED2 rows (MG_0001 Caci CH_03, MG_0002 Senet)2 rows todayclass 3 (layouts)
Motif imagery ADDED1 row (MOT_0001 the mother's ward)1 rowclass 17 (equipment)
Vril sites2 rows42 rowsclass 3 (layouts)
Schools0 — schools begin Ch 1513 rowsclass 5 + class 18
Runes0 mapped (19 rows, chapter blank)19 rowsclass 23 (UI)

1.3 Where each number comes from

Slice = the 13 rows whose chapters field covers Prologue-Ch 13: fairy_realm, flores_island,

bali, sumatra_java, angkor_khmer, sri_lanka, south_india, swahili_coast, ethiopia,

rift_valley, central_africa_congo, west_africa, south_africa. CH_05 carries two

(sumatra_java + angkor_khmer); every other slice node carries one. node_kind distribution

arc-wide: base 50, revisit 9, mythic_realm 9, atlantic_waypoint 6, story_anchor 1, bookend 1 — the

66-board figure is base + mythic_realm + waypoint + story_anchor, with the 9 revisit rows inheriting

their base row's ratified grammar under a decay-stage delta rather than a fresh board.

94 semicolon tokens, of which about four are parenthetical split artifacts

(Great Zimbabwe (Great Enclosure / Zimbabwe Bird soapstone)), so roughly 90 are genuine

named sub-locations. This is the axis the music register cards key on

(MUSIC_COMPOSITION_DOCTRINE.md line 1427: register cards key on region_secondary

sub-locations, not on chapter_id) and the art boards inherit that keying.

one top-level bullet each. Slice 88 rows / 85 distinct ids (three ids repeat: flowering_plain

and sovereign_hall across Prologue+Ch 1, liang_bua_cave across Ch 2+Ch 3). Arc-wide 380 rows /

375 distinct across all 79 nodes.

climactic_affordance non-none = 42 of 88 slice, 221 of 380 arc-wide (vocabulary observed:

vista, threshold, sacred, climactic_geometry, weather_dramatic); protected true =

47 of 88 slice, 196 of 380 arc-wide.

architecture_set_dressing — present on 79/79 nodes and 14/14 slice nodes. Six keys recur

on every single node: creatures_and_fauna, architecture_set_dressing,

material_palette and style_register, music_mood, voice_and_crowd, sfx_substrate. The

~134 slice / ~875 arc-wide form counts are a comma-and-conjunction split of that prose and are an

UPPER BOUND with conjunction noise, not a row count — turning them into rows is exactly rank 5's

asset_category / morphology job.

Ch 1 1, Ch 2 3, Ch 3 4, Ch 4 4, Ch 5 5, Ch 6 4, Ch 7 4, Ch 8 3, Ch 9 4, Ch 10 4, Ch 11 4, Ch 12 5,

Ch 13 4 = 50, and exactly one main per node.

brief carried**). Slice 115. species_class: mammal 82, bird 22, reptile 13, folklore 12, fish 9,

insect 6, mollusc 2, amphibian/insect 1, arachnid 1, mixed 1, amphibian 1.

Ch 11 is authored as prose rather than a token list (the Congo Basin's benevolent-forest cosmology

is a deliberate absence of malevolent beings, per Turnbull), and Prologue + Ch 1 carry

[POPULATE→T0_Creature_Roster (species_class=folklore)] placeholders. So 58 is the tokenized

count and the honest range is 58-62.

values (10 base: Air, Earth, Ether-Crown, Ether-ThirdEye, Ether-Throat, Fire, Lightning, Poison,

Vegetation, Water; 21 hybrids). tier_numerical has 8 live values (1.0-8.0). 31 × 8 = 248,

31 × 12 = 372 — the ruled sizing, matching ASSET_DROPIN_CONTRACT.md lines 296-297 verbatim.

Only 18 rows carry a slice unlock_chapter_ref (153 rows blank), yielding 9 distinct

element×tier pairs live in the slice.

map into the slice. 11 subclasses: RANGE 13, SHORT BLADES 10, BLUNT 9, LONG RANGE 7, BLADES 7,

FIST 5, LONG BLADES 5, THROWN 5, OFF-HAND 5, MAGIC 3, SOUND 3. Class split BRUTE 36 / TRICKERY 36.

from DR-2 item 6-D clause D5 — decay_stage freezes at exactly two values (the realm at its height,

the realm's authored present), and decay_law_binding is populated 11/11.

---

2. THE CHOICE-BOARD SPEC

The realm charter's board is the format. This section states it once for all classes, adds the

generalizations the other classes need, and fixes the review cadence.

2.1 One board, three panels

Per REALM_DESIGN_PROGRAM.md §3.2-§3.5, three options per panel, *"genuinely distinct readings

rather than three renderings of one idea."*

like."* Each of the three options is a plate sheet, not a single image: silhouette-and-architecture,

palette-and-light, and one signature detail — 9 plates. Each option carries four things and no

fifth: a one-line rationale naming the tradition-specific reading; a CITATION LINE to substrate

rows (an empty citation line means the option is not an accurate depiction but a guess with good

lighting); a RIGHTS value; and two badges, care_tier and generation_class. The bar is

AUTHENTICITY, NOT REVERENCE, and it binds in both directions.

floor** — every enhanced option is a strict superset of an accurate option, amplifying scale, light,

density, motion, verticality or legibility and contradicting nothing on Panel A. Two mandatory

labels, WHAT WAS AMPLIFIED and WHAT STAYED TRUE, plus a PLAYABILITY CLAIM (an amplification with no

play claim is decoration) and the ALTERED LAW in one clause.

asked for exactly five kinds of thing: STORY SUPPORT, SIDE QUESTS (minting into the existing

quest-seed queue), EASTER EGGS (never progression-gating), EXPLORATION/ADVENTURE/ACTION HOOKS,

NEARBY IMPORTANT ZONES. Each card carries a provisional id so the pick is an APPLY, not a

re-authoring pass.

amendment lane (*"A2, but the light comes from under the water"*), and a comma list of card ids for

C. A fourth lane, MORE LIKE THIS, regenerates rather than picks.

panel, or an unmarked one; and no previz_only image on Panel A, ever.

PROPOSED, because the charter leaves it unstated: Panel B's plate count per option. Panel A is

fixed at 3 plates per option by the charter's own wording; Panel B has no stated count. Recommend

2 plates per option — one hero view, one the-amplified-law-in-action view — giving 6 Panel-B

plates and a 15-plate board. The alternative (matching Panel A at 3, for 9 and an 18-plate board)

costs a third more generation and review time for a panel whose job is to show a delta, not to

establish a grammar. The charter's own benchmark question 4 already speaks of holding *"a nine-plate

board series"* together, which reads as Panel A being the plate-heavy panel.

2.2 The class-specific board shapes

Not every class needs three panels. The generalization:

The fairy realm is a four-panel board, the fourth panel generating from the Prologue-height

palette (the F-9 rider).

zoology says), Panel B enhanced. Panel C is dropped for individual beings and runs ONCE per region

instead, on the region board, because surrounding recommendations are a property of a place.

subclass or a whole equipment tier, three options for the family's visual language rather than

three options per object.

Panel B the three candidate visual laws, Panel C replaced by a CONSEQUENCE TABLE showing the law

applied to five sample cases so Josh can see what he is signing for the other 243 keys. One pick

here sets hundreds of downstream assets without another board — this is the highest-leverage board

class in the program and the reason classes 18, 19 and 23 are P0.

2.3 Metadata each option carries

The four charter items, plus three this program adds so the pick can land on the DR-2 contract

without a translation step:

FieldSourceWhy
Rationale lineauthorednames the tradition-specific reading
Citation linesubstrate rows / T0_Source_Material_Registry (1,914 rows)an empty line disqualifies the option from Panel A
Rights valuethe ruled six-value vocabularypreviz_only is barred from Panel A
care_tier badgethe owning registry rowratified as-is; this program does not widen it
generation_class badgeT0_Realm_Ruleset_Registry (10/11 populated)four values invented / historical / living / unsettled; unsettled treated as living by the gate
ADDED generation_licence_refC-12, THE LICENCE SCHEMA COMMITa model's licence demotion must fire regeneration_required automatically
ADDED generation_tierDR-2 item 6.1, closed enum background / region_standard / region_hero / realm / apexthe fidelity/budget class the pick commits to
ADDED decay_stageDR-2 item 6-D clause D3, exactly two valueswhich authored condition of the place this plate depicts

2.4 The cultural-register requirement — the music sibling, stated for art

The music doctrine's register card is the proven pattern and the art board must be its twin. One

music register card carries: chapter_id and sub-region; the era window read from live

T0_Chapter_Index; tuning_system and cents_table_ref; the timeline or cycle with its indexing

convention; ensemble and palette, period-checked; the FREE grammar; the NAMED SACRED EXCLUSION; a

source citation per row; generation_eligible (NONE / PARTIAL / FULL); the hummability substitution

set; and register_reviewer plus register_review_date. Fourteen cards cover the ruled slice.

Its load-bearing invention is the grammar-and-repertoire split: every card states the FREE

grammar and the EXCLUDED repertoire as two separate lines that do not cancel each other, because

*"a card that names a palette and then excludes that same palette four lines later gives a composer

nothing to act on, and the likely reading — do not touch this culture's music at all — is omission

dressed as care."*

The art board inherits that split exactly. Every region board carries a VISUAL REGISTER BLOCK

with the same two-line structure:

record supports, stated positively and specifically, with a citation per line.

music cards name theirs. The realm registry already proves the pattern works at this granularity:

RLM_0002 carries may_not/sami_markers/no_sami_markers_of_any_kind_on_any_plate_no_noaidi_drum_no_joik_no_gakti.

That is the register of exclusion this program adopts — a named marker, never a shrunk lane.

routes the subject to Lane R, Lane P or Lane G in §4.

Two further music-card laws transfer without change. The deep-time strata rule — no living people's

idiom may score a deep-time stratum, recorded as CULTURE-NONE — applies with force to the slice,

because Ch 10 (Rift Valley, Paleolithic 1.8mya through the African Humid Period) and Ch 13 (South

Africa, pre-civilizational ǀXam through apartheid) both span deep time and a living present in one

node. And the human check: the ship-tier bar is a named tradition-bearer or specialist reading the

register block, with objections recorded VERBATIM including the overruled ones.

2.5 Approval semantics — where a picked option lands

RULED, twenty-fourth sitting 2026-07-29 — THE BOARD MEDIUM IS PRIVATE WEB PAGES. Josh, verbatim:

*"Web page boards, and I'd like to keep those private and eventually after everything's been selected

even use it for marketing material."* This closes v1.0's open item 2 and overturns v1.0's own

in-repo-markdown recommendation, correctly: a 15-plate board reads far better as a rendered page than

as a markdown diff, and v1.0's own strongest objection said so. Three consequences bind:

public until every pick is made. The realm charter's §6.3 no-published-form rule is honored by

privacy rather than by locality.

is still versioned in-repo per the steps below. A pick that lives only on a web page is not canon.

§9's BOARD MANIFEST is the mechanism that makes the page's approval a repo row without a human

retyping it.

1. The pick line is recorded in the board's own markdown under docs/art_boards/<subject>/, and

mirrors into docs/art_boards/MANIFEST.csv per §9.

2. The ratified reading is written to the art bible at docs/art_bibles/<subject>.md (eleven

named PLACE fields, per the art-pipeline analysis §2; a BEING subject takes the twelve-field

docs/art_bibles/_TEMPLATE_BEING.md form instead, WQ_0031 leg 3). Neither directory exists yet — creating them is the program's first commit.

3. The five art-hook columns on the owning registry row are populated. For realms these already

exist and are the exact columns the boards were designed to fill: palette_law, silhouette_law,

impossible_architecture_budget, signature_phenomenon, concept_choice_slots — **0/11

populated today**, with every row's own named_blanks cell reading *"all five art hooks empty."*

4. The rank-5 columns land per entity: asset_concept (the picked visual concept),

morphology and asset_category, folded into mesh_tags as sub-fields `{morphology, region,

style, material, era}`.

5. generation_status advances on the five-state machine — pendingin_progress (prompt hash

set) → complete (asset path + timestamp), with rejected and regeneration_required as

off-tracks. A care-gated id cannot cross in_progresscomplete until the capture-rights and

authenticity audit signs off (DR-2 ratified item 4). "Reviewed" is complete plus human sign-off

with director_in_loop_required; "live" is never a stored claim.

6. generation_prompt_hash must include the licence-class token, model id, weights revision,

style-LoRA hash, generation_tier, decay_stage and presentation_tier_ref — so any one of them

changing fires regeneration_required without a human noticing first.

PROPOSED — a concept-art manifest, not a new registry. The natural instinct is to mint

T0_Concept_Art_Registry. Recommend against it. A repo-wide search for T0_Asset_* and

T0_Concept_* returns nothing, and the ruled architecture is deliberate: concept art is *"upstream

reference substrate… not canonical content itself"* (T1_Build_Pipeline_Contracts §2.5, lines

283-295), and PIPE_ART rules *"Nothing binary enters the canon repo; promoted plates enter as

manifest rows + hashes only."* So the home is a manifest, docs/art_boards/MANIFEST.csv, one row

per plate carrying board id, panel, option, subject canon id, rights value,

generation_licence_ref, prompt hash, and pick state. The concept_art_ref column is DECLARED in

T0_Schema_Dictionary (§1.13, a project-relative path) on five registries and is IMPLEMENTED on ZERO of

the 62 live registry headers, so it is the intended FK from the entity row into the manifest

and it cannot be written today — the column has to be added to the live headers first, via the

registry_extensions plus fidelity_baseline mechanism, before any writeback can land. MEASURED at

landing 2026-07-29, and recorded with its own trap: the dictionary escapes every underscore, so a

plain-underscore grep for concept_art_ref returns ZERO against a file that declares it five times

(positive control: mesh_pipeline_type reads 4 escaped and 0 plain in the same file). A search

that cannot match reports zero — the claim is not false, it is unimplemented, and reading it either

way without the escape-aware check gets it wrong. The

one thing a manifest cannot do that a registry can is enforce FK coverage in the gate suite — which

is why the manifest ships with harness/read_boards.py (§4.5), the deterministic PRESENCE-and-SHAPE

tooth the art-pipeline analysis already proposed and which does not exist yet.

2.6 The review cadence — bounding Josh's time

RULED, twenty-fourth sitting 2026-07-29 — the cadence is SERIAL-UNTIL-CALIBRATED, THEN BULK.

Josh, verbatim: *"Batch cadence - 1 board at a time until we have 90% guest time approval rates then

do all remaining boards at once since they're web boards I can just check them when convenient."*

This supersedes v1.0's proposed two-boards-per-sitting figure, and it is a better shape than the one

proposed: the calibration phase is where the pipeline learns his taste, and a serial phase makes each

correction land before the next board is generated rather than after twenty are already wrong.

The cadence therefore has two phases, and the phase boundary is a measured rate, not a date:

landed before the next board is generated. The metric is the first-pass approval rate: the

fraction of boards whose Panel A and Panel B picks are taken without a MORE LIKE THIS regeneration.

The phase ends when that rate reaches ~90% on a trailing window. Because boards are web pages

reviewed at Josh's convenience, the serial phase costs calendar time, not sitting time — the

pipeline blocks on the review, Josh does not block on the pipeline.

parallel against the ratified grammar and are published as a set. This is where the 5090's

night-window throughput actually pays off, and it is the phase the §3.5 scheduling constraint was

designed for.

computed, not felt. §9's BOARD MANIFEST carries approval_state and regeneration_count per board

precisely so first_pass_rate = boards_with_zero_regenerations / boards_reviewed is a query rather

than a recollection. Without the manifest, the 90% gate is unmeasurable and the ruling cannot be

executed as stated — which is the strongest single argument for §9.

is noise. Recommend a trailing window of ten reviewed boards, so the gate needs nine of the last

ten taken first-pass. This is execution sizing inside a ruled law, applied rather than flagged.

12 main-boss boards (Ch 2-13; the Prologue and Ch 1 main bosses ride the fairy-realm board), the 5

P0 boards of §3.2, and the fairy realm's 4-panel board at slice-end. Full game: 161 boards

which under the old two-per-sitting cadence was ~80 sittings, and is exactly why the bulk phase

matters. The tiering below still applies in both phases.

The tiering that makes the layout work reviewable. 42 climactic slice sites cannot each carry a

board. The rule: a site gets its own board only if its climactic_affordance is non-none AND it is a

main-boss arena, a dungeon mouth, or a vril site. Everything else inherits the region board's

ratified grammar and is DIRECTOR-PICKED from a contact sheet, with Josh seeing the applied result on

the next region board rather than a fresh decision. This is the charter's own logic — *"one

establishing board per realm rules the whole visual grammar; zone boards run only after"* —

generalized to earthly regions.

Before Josh ever sees a board, four adversarial critics run and a NO-GO regenerates it:

cultural-authenticity (calibrated both ways), physics-coherence, AAAAA de-slop (the

unlabeled-relabel test), and reveal-discipline. Critics at the opus tier. Josh never sees a board

that failed a floor.

---

3. SEQUENCING

3.1 The ruled build order this obeys

docs/PRE_5090_BUILD_PLAN.md lines 146-158, SLICE RESCOPE, Josh RULED 2026-07-27 (fifth and seventh

sittings): *"BUILD ORDER — Ch 2-13 first (the earthly arc, 11 chapters), THEN Prologue + Ch 1. The

fairy realm designs and builds ONCE, at slice-end, after 11 earthly chapters have matured the

concept-art pipeline, the presentation ladder, the W-SPACE grammar and the QA belt. Every rank that

touches the fairy realm therefore sequences LAST inside its own rank, never first."*

Rank 5 — the art-and-asset data leg — carries its own ordering: *"Ch 2-5 first (the built surface),

Ch 6-13 as their region legs land, Pro+Ch 1 at slice-end."* And art is a DROP-IN, not a gate:

FACTORY_CONTRACT.md FR-040 makes the asset passes drop-ins over the asset-path contract, so art

trails its leg rather than blocking it.

Two board pilots are already named and have not run: Atlantis (Ch 66), then the Duat (Ch 69).

3.2 Before the Ch 2 build starts — the P0 set

Four language boards and one architecture kit. These are P0 because each one, unpicked, forces either

a stall or a guess that hundreds of later assets inherit.

1. The per-element visual law board (class 18). This is the single highest-leverage board in the

program. It is also a NAMED GAP, not merely unbuilt: DESIGN_GAP_REGISTER.md entry 4 amendment

(adjudication 20) records that *"the 31 elements will be generated against no VISUAL law"* and

specifies the fix as a per-BASE-element presentation row carrying dominant hue band, silhouette

primitive, motion signature and sound register, plus a declared hybrid-inheritance rule. Ten base

elements are boarded; the 21 hybrids inherit by the declared rule. Consequence table shows five of

the 248 keys resolved so Josh sees what the law buys.

2. The rarity and UI iconography board (class 23). T0_Rarity_Grade carries 13 rows and four art

hooks — shape_token, colour_ref, beam_vfx_ref, card_layout_ref — all 0/13 populated,

and display_name_text is empty too. Every drop, beam, card and pickup in the game reads off

these. One board, 13 rows populated.

3. The Hollow and rift surface board (class 19). T0_Hollow_Codex has one row, HW_0001, and

the Hollow is a ruled content pillar across six axes. The visibility law and the affliction

register are visual by nature. One board sets the negative-vril surface grammar for every rift,

pop-up and instability zone.

4. The Manggarai architecture kit (class 5, Ch 2-3). Already authored in prose on both nodes'

## Asset anchors: the mbaru niang cone-houses, the lingko spider-web fields, the Ngada

megalithic ngadhu and bhaga platforms — all marked protected. This kit is the pipeline's first

real cultural-register test and it must clear before Ch 2 stages.

5. The equipment board for EQ_0001, the Mother's Amulet. Not deferrable. Ch 2's asset anchor

specifies an object that *"needs a signature the eye can recognize much later without a line of

explanation now — a shape, a material, a way it takes the light in the cold ground and again in

the outside light,"* recovered at CH02_B11, worn unbroken to the Ch-13 departure where it is given

away, and constrained by HL_0095 to carry no legible fairy-realm script at all. It is the slice's

longest-running visual promise and its board is the first object board.

3.3 Riding each chapter leg — the P1 set

Per leg, in this order:

1. The region establishing board (Panel A cites the region's substrate rows; Panel C mints quest-seed

cards into the existing queue).

2. The architecture kit, derived from that node's architecture_set_dressing anchor.

3. The main-boss board, plus director sheets for that node's 2-4 sub-bosses.

4. Creature sheets for that node's first-encounter rows (Ch 5 is the spike at 23, Ch 10 at 17, Ch 2

and Ch 11 at 11 each).

5. Folklore-being sheets for that node's named entities (Ch 5 spikes at 8, Ch 12 at 7).

6. Layout plans for the node's site rows, tiered per §2.6.

7. Flora, mineral and gather-node plates where the node's region has rows.

8. Ability VFX variant sets for that node's unlocks (Ch 2: 4, Ch 3: 2, Ch 4: 5, Ch 6: 4, Ch 7: 2,

Ch 10: 1 — the other eight slice nodes unlock nothing mapped, which §5.4 flags).

Four steps added in v1.1, and they run against the leg's ZONE CATALOG rather than its spine node

the per-settlement layer keys on place, not chapter (§6.0):

9. Foliage and ground-treatment sets for the region's distinct terrain and footfall_surface

classes — 3 to 6 per region, 54 across the slice (D1-19). These come EARLY in the leg, not late:

every other place plate in the leg sits inside one of them, so a kit or layout composed before the

biome set exists gets recomposed.

10. Dwelling variation sets for the leg's settlement zones — the culture's kit spread across the

three status bands and the two ruled decay stages, plus a trade-mark on the homes of practitioners

(D1-06). The kit from step 2 is the input, not the output.

11. Trade footprint sets for the trades the region's Section 14 actually names — 2 to 10 per region,

53 across the slice — carrying the workshop, the stall, the work-in-progress scene, and signage cut

in the region's own script class (D1-07).

12. The civic layer — the settlement's own monuments and public art, drawn from that node's

## Civilizational marks bullets (5 per node at the slice median) for city-tier settlements and a

shrine or marker for the rest (D1-08).

Ambient crowd buckets (D1-10) ride step 10, six per settlement zone, because a bucket's costume is

a function of the settlement's status bands and trades — authoring the crowd before the dwellings is

what produces villagers who look like they live nowhere.

3.4 Slice-end — the P2 set

The fairy realm's four-panel board, the Prologue and Ch 1 layouts, the Prologue cinematic key frame

(SCENE_PROLOGUE_OPENING, the slice's only scene spec), and the dungeon and rift interiors once the

Class-A twenty has a slice-scoped subset. The fairy realm runs last by ruling, on the matured

pipeline, and its board is delivered as local files rather than any published form.

3.5 The box's first week

The setup runbook is a DAY-ONE document (Stages 0-8, attended times 75-120 / 90-140 / 60-80 / 60-90 /

45-75 / 90-150 / 60-120 / 20-30 / 45 / 90 minutes, with Stage 7's soak running overnight and Stage 8

closing the next morning against the soak report). There is no enumerated day-1-to-day-7 plan in

the repo — searched Day [2-7] across docs/ with Day 1 as the positive control, which returns

exactly one hit that refers to the pre-arrival authoring window, not the box. What is ruled: setup on

box-day 1, Stage 8 close on box-day 2, then Continuo's up-front window at roughly one full box-day,

then Humanity's first box work — kill tests and benchmark day — which is remote-drivable.

PROPOSED art-lane shape for the first week, inside those ruled windows:

downloads during the attended stages; the full ART roster is ~95-105 GB.

matters most to this program is question 3: the de-slop critic's unlabeled-relabel test used as a

MODEL SELECTOR across HiDream-O1 vs Qwen-Image-2512 vs Z-Image-Turbo, where *"Whichever model's

plates are least interchangeable wins."* Also settle question 4 (per-realm style LoRA versus

multi-reference personalization — the loser is dropped, not kept), question 6 (does the paintover

lane measurably inherit structure, tested by depth-map IoU between the Lane-R underlay and the

Lane-P output), and question 5's GPU-free licence re-read including the unresolved Gemma-4

discrepancy that the whole HiDream text-encoder chain depends on.

FLAGGED as a proposed amendment, not a silent change: question 3 is written to run on *"one

realm brief."* Recommend running it on two briefs — the ruled Atlantis pilot AND a Ch-2 Flores

brief — because the first twelve legs are earthly and a model selected purely on realm plates may

be the wrong pick for ethnographic accuracy. The cost is one extra afternoon on a decision that

binds every plate in the program.

boards, the four language boards, the Manggarai kit, the amulet board. That is 9 boards, about

135 plates.

The scheduling constraint that shapes all of it, and which the art lane must respect rather than

discover: three heavy GPU jobs per night in the windows 00:00-04:00, 05:00-08:00 and 20:00-00:00,

with 04:00-05:00 reserved for the soak and non-negotiable, and 08:00-20:00 the UE window admitting

exactly one tenant at 8 GB or under. Board generation is therefore a NIGHT job — Qwen-Image-2512 at

26-28 GB is single-tenant by itself and 29 GB of 32 is the tight fit the whole hardware decision

turns on. Daytime, the only art tenant that fits is SeedVR2-3B at NVFP4, 3-4 GB, so days are for

upscale and refinement passes over the night's output. Style-LoRA training is an

unattended-overnight job at 20-24 GB. The heavy lanes run sequentially, never concurrently, and the

lane fully unloads before any 3D-gen run or UE cook.

---

4. PIPELINE ROUTING

No new tools. Everything below is from the ruled stack, and the licence tier is *"a rule keyed on a

licence document, not a judgement call."* The governing law, ART_PIPELINE §2.3: any image model whose

weights carry a MAU cap, territory exclusion, revenue ceiling or non-commercial clause is

disqualified from producing anything that reaches an art bible; such tools are previz_only, *"usable

at will internally, never load-bearing."*

4.1 The three lanes

Lane R = REFERENCE (ungated). Lane P = PAINTOVER (5090-gated for volume). Lane G =

GENERATED (5090-gated). *"Panel A is Lane R for every realm whose source tradition is living."* This

program's derived consequence for the slice: 47 of 88 site rows are protected true, so a

majority of the slice's layout art routes Lane R on Panel A and may never take a raw generation

there. Per-chapter protected counts: Prologue 0, Ch 1 1, Ch 2 2, Ch 3 4, Ch 4 6, Ch 5 5, Ch 6 4,

Ch 7 2, Ch 8 2, Ch 9 5, Ch 10 3, Ch 11 3, Ch 12 5, Ch 13 5.

4.2 Generator per class

Class groupPrimaryFallback / roleLicence
Places, region key art, layouts, realms (classes 1-4, 21)HiDream-O1-Image-Dev (8B, 28 steps, up to 2048², multi-reference personalization, skeleton/layout conditioning)Qwen-Image-2512 where realism or text-in-image dominatesMIT / Apache-2.0
Beings, NPCs, bosses, creatures, familiars (classes 6-12, 20)Qwen-Image-2512 (20B MMDiT, realism)HiDream-O1 for stylized folklore beingsApache-2.0
Objects — weapons, equipment, vehicles (classes 16, 17, 22)HiDream-O1Z-Image-Turbo for fast iteration sweepsMIT / Apache-2.0
Fast iteration and variant sweeps on any classZ-Image-Turbo (6B, 8 NFE, sub-second, fits 16 GB)Apache-2.0
Paintover, the human-in-loop canvas (Lane P, all classes)HiDream-O1 edit mode via HiDreamO1ReferenceImages inside Krita AI DiffusionQwen-Image-Edit-2511 for multi-reference identityMIT / Apache-2.0; Krita GPL-3.0, tool only, no output taint
Structure control on every classQwen-Image-ControlNet-Union and Z-Image-Turbo-Fun-Controlnet-Union (canny, softedge, HED, depth, pose, MLSD) over Depth-Anything-3 depth extracted from Lane-R platesApache-2.0; pin the Apache variants of Depth-Anything-3 by filename, the Giant and Nested variants are CC BY-NC 4.0
Upscale and finish, all classesSeedVR2 3B at NVFP4 (Blackwell-native, 3-4 GB)Real-ESRGAN (BSD-3-Clause)Apache-2.0
Materials and PBR derivationMaterial MakerMaterializeMIT / GPL-3.0
Speed on the primariesNunchaku / SVDQuant v1.2.0 at NVFP4, ~3× over BF16 and a 3.6× memory cutApache-2.0

Style consistency across a class's plates is native in 2026, not IP-Adapter: HiDream-O1

multi-reference personalization, Qwen-Edit-2511 multi-image identity, and a per-subject style LoRA

(the charter's per-realm LoRA, generalized here to per-region), with ControlNet-Union holding

structure. IP-Adapter is EXCLUDED from the shipped path — Apache-2.0 but SD1.5/SDXL-only, 22M params,

last substantive release January 2024: *"The brief's 'IP-Adapter consistency tooling' is a 2024

answer."* Which of the LoRA or the multi-reference path actually holds a nine-plate series together

is benchmark question 4, and the loser is dropped rather than kept.

4.2a THE MARKETING-REUSE RIDER (new in v1.1, forced by the twenty-fourth sitting)

Josh's board-medium ruling ends *"eventually after everything's been selected even use it for

marketing material."* That single clause changes the licence posture of the whole program, because a

plate that was internal-only becomes a commercially distributed marketing asset. The rider:

licence text: FLUX.2-dev and FLUX.2-klein-9B carry the FLUX Non-Commercial License, and Krea-2

carries a sub-one-million-dollar revenue ceiling. Marketing distribution is precisely the commercial

use those terms exclude. The existing fence — no previz_only image on Panel A, ever — now extends:

no previz_only image on any panel of a board destined for marketing reuse.

selected, the safe reading is that every board is marketing-destined from birth. The practical

consequence is the simplest possible rule and the one the pipeline should enforce: **FLUX and Krea

are barred from boards entirely.** They remain usable for private composition exploration that never

reaches a board — which is a genuinely narrower lane than v1.0 assumed, and the narrowing is the

licence's, not ours.

token into generation_prompt_hash, so a demotion fires regeneration_required automatically. v1.1

adds one field to the manifest: marketing_eligible, computed from the licence class rather than

asserted, so the marketing set is a QUERY over the manifest and never a hand-assembled folder.

reference photography is the cleanest rights value in the vocabulary and is the only one with zero

marketing ambiguity. This is a reason to prioritize it, recorded here rather than left implicit.

true` and route Lane R on Panel A. A Lane-R reference plate is often licensed or museum-sourced, and

a museum's open-access grant is not automatically a marketing grant. So the marketing set will

skew toward Panel B (the enhanced, generated-from-clean-weights side) and toward own_capture

which is a sound outcome for a marketing page anyway, but it must be a declared routing fact rather

than a discovery made during a store-page build.

4.3 Licence constraints applied per class

Non-Commercial License, and the licence text itself returned HTTP 401 to anonymous fetch:

*"An output-carve-out inside a non-commercial weights licence is precisely the ambiguity §2.3

refuses in the shipped path."* Only FLUX.2-klein-4B (4B, ~13 GB, Apache-2.0) is shippable.

Practical rule for this program: FLUX may be used freely for internal composition exploration, and

no FLUX-derived plate may appear on Panel A or enter an art bible.

one million United States dollars… trailing twelve-month basis"* — §2.3's named disqualifier,

verbatim.

DEFAULT, so it *"would silently taint every plate it touched."* The ruled fence: the lane pins an

upscale-weights allowlist and models/upscale_models/ is never trusted by default. This applies to

every class, on every plate, and is the single easiest way for the program to poison itself.

commercially-clean AI PBR-estimation gap is STILL OPEN. Classes 5, 13, 15 and 16 — the ones that

want material derivation — route through Material Maker (MIT) as the ruled answer, which benchmark

question 7 asks be recorded as a decision rather than left as a hope.

§5.c blocks output distribution outside the Territory, so no Hunyuan meshes ship, and the concept

art this program produces hands to a TRELLIS-class 3D lane whose concurrency ceiling is 24 GB.

weights are NVIDIA Open Model License, commercial-permitted. *"Hand them to the animation lane, not

here."* This program's only ARDY-adjacent surface is class 18's presentation-ladder animation

variants, which are DR-2 ordinal 12 (Animation / montage, keyed ability_id +

presentation_tier_ref) and belong to the animation lane, not the concept-art lane.

but links a Google-hosted Gemma 4 license page. HiDream-O1 is the primary for the place classes and

its text-encoder chain depends on this. Resolve at pre-flight, before the first GPU hour.

generation_prompt_hash so a demotion fires regeneration_required automatically. This is the

mechanism that makes the previz-only fence enforceable rather than aspirational — PIPE_ART notes

the §2.3 constraint is one *"which nothing currently enforces"* today.

4.4 Where the human and Josh sit

training, tiling-texture sets. All output is previz-tagged. **No promotion ever happens

unattended.**

subject, the first run of any new model, and the Krita paintover loop.

slice, *"but a board is a decision surface, not a playtest, so boards are the one visual artifact

that legitimately reaches him early."*

order is a query over registry rows for generation_tier, care_tier, decay_bearing and

decay_stage, and **rows whose care_tier is in the living-tradition set can never dispatch to

Lane G** — the composer refuses and emits a Lane-R plate request instead.

FLUX.2-dev LICENSE.md and the Krea org returned HTTP 401 to anonymous fetch); the commercial

image-licence decision, where the standing recommendation is *"buy neither"*; and own_capture

reference photography, which is his to create and the cleanest rights value in the vocabulary.

4.5 The gate, and the ruled output path

SUPERSEDED IN PLACE 2026-08-03: the subject-and-board output path this section originally ruled

(E:\art\boards\<subject>\<board_id>\) is replaced by the class-keyed content-addressed form

<class_id>/<canon_id>/<plate_role>__<hash12>.<ext>, because harness/check_art_pointers.py

(GATE 43) enforces that form and two ruled path forms in one repo is a hallucination waiting for the

next agent.

harness/read_boards.py — deterministic, PRESENCE and SHAPE only, never content, with --self-test

must-fire and must-not-fire fixtures and exit-3. It is LANDED (GATE 37 boards; this section's

"it does not exist yet" was true when written on 2026-07-29 and is corrected here rather than left

to rot), and it is joined by GATE 43 art_pointers, which resolves the path and byte-verifies the

sha256 the board rows carry. A tooth without a failing fixture is not armed.

Formats, ruled: 16-bit PNG for plates and albedo, EXR for lighting studies, PNG or TGA for texture

import via idempotent replace_existing=True, and no JPEG in the promotable path.

The output path, ruled and gate-enforced:

<class_id>/<canon_id>/<plate_role>__<hash12>.<ext> — the density_model.csv class, then a LIVE

primary key in that class's key_registry, then the role and the first twelve characters of

generation_prompt_hash. The full law, the three sentinels, the multi-id dispositions and the

canon_ref token grammar are docs/CONCEPT_ART_PRODUCTION_PROGRAM.md §3.2, which is the HOW half

and is never re-derived here.

(docs/art_boards/<subject>/<board_id>/), which is what it was always good for. It is a review

surface, not an asset address.

QA gate's evidence."* Under the content-addressed form that is a property of the filesystem rather

than a habit: a regeneration cannot overwrite its predecessor, because its hash differs.

ComfyUI runs as two instances (C-1): the WSL2 Puget container on port 8188 as the primary generation

host, and Windows-native ComfyUI on port 8189 as the ART fast-iteration lane, sharing one models/

tree. No lane's service runs before its port is in the firewall table.

---

5. THE GAP LIST

5.1 The slice node count — RULED AND CLOSED (twenty-fourth sitting, 2026-07-29)

CLOSED. Josh, verbatim: *"Yeah 14 nodes but I think 15th comes because one chapter is multiple
regions?"* — his hypothesis, confirmed against the live registry. **The slice is 14 narrative nodes
over 15 chapter×region build legs.** CH_05 carries two region rows (sumatra_java +
angkor_khmer); flores_island spans Ch 2-3 in the other direction, which is why the region-row
count is 13 rather than 15. Both numbers in the repo were describing something real, and neither was
wrong — the binding plan's "15" was counting build legs while this program was counting nodes. The
rescope block, the EA-boundary line and the store-page honesty rule are corrected in place; the
remaining mechanical "15-node" mentions sweep with this program's landing. **The slice CONTENT is
unchanged, so every derived count in this document stands as derived.** The v1.1 density model sizes
per-node work on 14 and per-region work on 15 legs / 12 built region pages, and says which it is
using in every formula.

The original v1.0 flag text is retained below as the provenance of the ruling.

5.1a (historical) The slice node count does not add up — a canon-numerical flag for Josh

PRE_5090_BUILD_PLAN.md line 147 states *"The vertical slice is PROLOGUE→CH 13, 15 nodes,"* and the

15-node figure has propagated into PRE_5090_BUILD_PLAN_VOL2.md (§ target, soak scope, QT-13),

ROADMAP_POST_5090_TO_SHIP.md (five places, including the EA boundary ruling and the P3 exit

criterion), MARKETING_WEB_PROGRAM.md (*"the first 15 nodes, complete"* as the store-page honesty

rule), and ranks 5 and 11 of the binding queue.

Prologue plus Ch 1 through Ch 13 is 14 nodes. T0_Chapter_Index returns exactly 14 rows for that

span. docs/spine/ holds exactly 14 files for it. And MUSIC_COMPOSITION_DOCTRINE.md §4.0.2

independently derived the same figure: *"The ruled slice is PROLOGUE through CH 13 — fourteen

nodes,"* with §58 adding *"fourteen nodes, not eight."*

So the repo carries both numbers, and the binding plan carries the wrong one. This program sizes on

14 throughout. Node counts are locked structural canon under the cardinal rule, so the correction is

Josh's to ratify, not the loop's to apply silently — and it touches a marketing-honesty

commitment, which raises the stakes beyond arithmetic.

5.2 Classes with NO COUNTABLE HOME, and the named future source

v1.1 status: THREE OF THESE ARE NOW COUNTABLE, and one got worse. Reading the region pages' zone
catalogs supplied the place-grain denominator v1.0 lacked, so NPC crowd/ambient tiers (→ D1-10,
240 slice plates off the ruled 6-buckets-per-crowd), foliage and biome dressing (→ D1-19, 54
region×terrain sets) and housing (→ D1-06, 20 settlement zones) all have formulas now. The one
that got worse is enemies, which v1.0 did not list at all and which v1.1 establishes as the
program's largest hole (D1-12). The table below stands as the v1.0 record; §6.3's D3 register is the
current one.
ClassWhy uncountable todayNamed future source
Architecture kits (5)79/79 nodes carry the prose anchor; T0_Dwelling_Registry has 2 CLASS rows, T0_Environment_Grammar_Registry 2 rows (EG_0001 Lava Vent, EG_0002 Sieidi Stone)Rank 5asset_category / morphology / mesh_tags turn the prose into rows. Rank 7 authors EG_ rows for every slice combat and traversal surface
NPC crowd and ambient tiers (8)T0_Character_Index covers 164 NAMED entities only; no census of the ambient population existsRank 11 — mint T0_Persona_Index, one row per entity, carrying the persona tier flagship / supporting / ambient-bucket. That tier field IS the crowd-versus-named art census
Housing and dwellings2 class rows, no instancesRank 10 — the §7.5 housing-ledger typing pass, 264 seeds on the built regions, growing with the slice
Foliage and biome dressing (14)T0_Region_Index.terrain_feature_class_ids populated 4/76Rank 30 — the Region_Index environment rail
Mood, lighting, weather sets (2)HALF-SOLVED. The MOOD axis is now countable: T0_Chapter_Index.emotional_register is populated 79/79 (single-word values — wonder, tenderness, grief), joined by emotional_valence_arc and cost_ledger, all 79/79, and music_mood_tags + environmental_params are 79/79 too. The WEATHER and TERRAIN axis is still thin: weather_cycle_profile, ambient_elemental_affinity, movement_modifier, terrain_permanence_default, terrain_integrity_skin, protected_terrain_ref and env_density_band_default are each 4/76; env_emitter_site_ids and env_drain_site_ids are 0/76Mood: key the lighting board on emotional_register NOW. Weather: rank 30, the Region_Index environment rail
Flora, minerals, gather nodes, festivals (13, 15)25 / 19 / 24 / 16 rows exist but cover only flores_island, bali, sumatra_java, angkor_khmer — 4 of 76 regions. The slice figure is complete; the full-game figure is NOT SIZED and must not be extrapolatedEach region leg extends its own registry as it lands
Equipment (17)1 row totalThe reward-taxonomy class-table brief minted by the fourteenth sitting
Dungeon and rift instances (4)Class A cardinality is *"exactly 20 (10 vril + 10 health capacity pieces)"* ARC-WIDE, with no slice subset; Classes B/C/D/E are open-cardinality; T-RIFT-5 declares itself UNARMED because the living-or-occupied predicate site_occupancy_class is a queued mintThe site_occupancy_class mint, then the per-instance registry rows
Per-element visual law (18)DESIGN_GAP_REGISTER.md entry 4 amendment names it: *"the 31 elements will be generated against no VISUAL law"*; no hue, silhouette or motion column exists on any registryThe per-base-element presentation row that the same amendment specifies

5.3 Ruled schema that exists but is empty — the populate legs this program depends on

impossible_architecture_budget, signature_phenomenon, concept_choice_slots. Every row's

named_blanks cell says so. concept_choice_slots is precisely the column these boards fill.

T0_Weapon_Registry (column 22) and is 0/185 and 0/72 populated. The rail exists; the populate

leg is open.

creatures, 0/164 characters, 0/72 weapons, 0/22 familiars, 0/64 antagonists, 0/42 vril sites,

0/1 equipment. generation_status and generation_tier are likewise 0 across all eight.

is a column-add as well as a populate.

Note the naming conflict to avoid: PIPE_ANIMATION asks for the same column as asset_licence_ref;

the ruled name is generation_licence_ref.

5.4 Two derived holes that will bite a chapter leg mid-flight

canonical_chapter_acquisition, and 12 of 14 slice nodes carry an unpopulated

[POPULATE→T0_Weapon_Registry chapter-availability mapping] placeholder in

weapons_available_in_chapter. Only three weapons are named across the whole slice. A leg that

reaches its weapon board will find nothing to board. Rank 13 and the weapon-availability mapping

own this.

the fourteen slice nodes unlock nothing mapped. The class-18 language board is unaffected — it

boards a LAW, not instances — but the per-node variant sets in §3.3 step 8 have no target on those

eight nodes.

at Ch 55, 58, 76, 77 and the Epilogue. Cinematic key frames for the earthly arc have no rows to

key on.

5.5 Genuinely Josh's — ALL THREE v1.0 QUESTIONS ARE NOW RULED

All three closed at the twenty-fourth sitting, 2026-07-29. (1) The slice count = 14 nodes / 15
region legs, §5.1. (2) The board medium = private web pages with marketing reuse, §2.5 + §4.2a.
(3) The cadence = one board at a time until ~90% first-pass approval, then all remaining at once,
§2.6. **v1.1's open Josh set is a different and much shorter list — §8.3, and it is TWO items, both
weapon-naming canon.** The v1.0 text is retained below as provenance.

5.5a (historical) The v1.0 three questions

1. The slice node count, §5.1. 14 versus 15. Locked structural canon, propagated into a

marketing-honesty commitment. Recommendation: ratify 14 and correct the five documents in one

pass. Strongest objection: if "15 nodes" was deliberate and counts something this program has not

found, the correction would itself be the error — which is exactly why it is not being applied

silently.

2. Board delivery medium. Already an open Josh item (PIPE_ART §5 item 5, §8 item 1), and the

charter §6.3 ruled it for realms as versioned in-repo markdown under docs/art_boards/, nothing

published. The question this program adds: do the 29 slice boards take that same in-repo form,

or does he want a published page for the earthly regions with local files reserved for the fairy

realm? Recommendation: in-repo for all of them, because he reviews at the machine and the pick line

needs to land in a commit anyway. Choose the published form only if he wants to review away from

the desk. Strongest objection: a 30-plate board reads considerably better in a rendered page than

in a markdown diff, and review quality is the whole point.

3. The review cadence, §2.6. Two boards and roughly 30 plates per sitting, 30-45 minutes, one

sitting per region leg. He has said he will spend the time; this asks him to confirm the BATCH

SIZE so the factory can schedule board delivery against leg completion rather than guessing.

Recommendation: accept, with a standing right to say "send four" once the pipeline matures.

5.6 One process note

The per-tier variant sizing is ruled at FULL strength and this program plans for it, not around it.

Josh OVERRULED the band-collapse recommendation at the fourteenth sitting: *"OPTION (A) — FULL

PER-TIER VARIANTS… no band collapse, no hybrid inheritance,"* sizing the contract for **248 live

variant keys and 372 at the 12-tier clamp**, with *"parametric interpolation only INSIDE an authored

tier's polish pass, never instead of one."* The engine doctrine's rule D10 makes the corollary a

canon defect rather than a scalability choice: serving the tier-1 effect for a tier-12 ability is

wrong at every spec class; only its cost scales. Class 18 is therefore the largest single line in the

full-game totals table, and that is the ruled answer, not an overrun.

---

6. THE DENSITY MODEL

This is v1.1's reason for existing. Josh read v1.0's class counts and asked the only question that

matters for a build: not *what kinds of art* but *how much of each, per place*. A count of 88 site rows

says nothing about how many houses stand in a village, how many people walk its street, how many of

them visibly work, or what the village's own history put in its square. Those are the numbers the

factory needs, and they are the numbers this section derives.

6.0 The unit-economics law, and the four denominators that make it possible

The law. Every class below carries a FORMULA whose every input is either (a) a live count, (b) a

RULED number, or (c) a NAMED MISSING INPUT with its future home. No multiplier is assumed. Where the

honest answer is *no formula is possible yet*, the row says so — two rows do, and they are the two

most important findings in this section.

Why v1.0 could not do this and v1.1 can. v1.0 sized off the spine and the registries, which key on

CHAPTER. Per-settlement density keys on PLACE, and the place-grain layer is the region pages' ZONE

CATALOGS — which v1.0 never read. Reading them supplies four new denominators:

DenominatorDerived valueSource
Region pages with a zone catalog12 — every slice earthly region; fairy_realm has none by design (it builds last)_source/02_Tier_2_Region_Pages/*.md
Zone rows across them84 — flores 11, congo 8, rift_valley 8, south_africa 8, bali 7, ethiopia 7, south_india 7, sri_lanka 7, west_africa 7, angkor 5, swahili 5, sumatra_java 4the ## Zone Catalog tables
Settlement-class zones20 of 84 — the per-settlement denominator for every one of Josh's three amendmentsterrain ∈ {agricultural, urban} OR a settlement token in zone_id
Settlement TIERS9 city-tier (7 urban + 2 sacred-city), 9 village-tier, 2 port-tierthe same rows, read on terrain + id

The catalogs also carry columns v1.0 had no visibility into, and each becomes a formula input below:

terrain (12 classes: sacred_site 20, water_body 11, mountain 10, coastal 9, forest 9,

agricultural 8, urban 7, wilderness 5, wetland 2, cave_system 1, desert 1, ruins 1),

footfall_surface (84/84 populated, 5 classes: stone 29, earth 27, water_edge 14, forest_litter 10,

mixed 4), ambient_threat (low 41, moderate 38, high 5 — v1.0 never saw the high band),

protected (46 true / 38 false, independently corroborating the spine's 47-of-88),

care_tier (elevated 51 / standard 33), and build_priority (P1 61 / P2 23).

One column is a silent zero worth recording: worldcover_biome is 0/84 on the zone catalogs,

which is a second instance of the same hole §5.2 already named at the region level

(terrain_feature_class_ids 4/76). The biome rail is empty at BOTH grains, so D1-19 keys foliage on

terrain + footfall_surface — the two columns that are actually populated — rather than on the

column the schema intended for it.

The ruled density band this section obeys. PRE_5090_BUILD_PLAN_VOL2.md §A.1 records Josh's

2026-07-24 ruling that density is a CURVE, not a uniform bar — ≈100-200h main / 1-2k h side+weave /

8-10k h 100%, with Ch 2-5 deliberately lighter and seed-rich. §11.5.5's QT-17 scorecard makes it

measurable and states the early-game floor as read directly off CH_03: **7 sites / 12 beats / 1 main +

3 sub bosses / 1 fork × 4 options, with 2-4 gather nodes per region** and *"ambient personas: Ch2

names 7; floor, not ceiling."* Two things follow, and both bind this section:

ruled curve. So every D1 row states a FLOOR (the early-game seed-rich end, which is what Ch 2-5

actually needs) and a TARGET (the mid-game end the same class reaches by Ch 13 and beyond).

RESCOPE BLOCKER on QT-19 states it plainly: the family *"may NOT be armed past Ch 5 until the bands

extend and the off-curve nodes carry declared sentinels,"* the Prologue is a ceiling TUTORIAL

(presentation, not content budget) and Ch 1 is declared out of corpus scope. VOL2 refuses to

write band values because inventing them *"would cross the tuning firewall."* **This program adopts

the same refusal.** D1's floors are derived from live rows; its targets are derived from ruled

ceilings; neither invents a per-node band. The band/sentinel pass — landing with

check_slice_scorecard.py, which does not exist — is the named missing input D3-14, and it is the

precondition for validating any per-node art target past Ch 5.

6.1 D1 — the density model, per class

Full machine-readable form: density_model.csv (43 rows, 15 columns) and density_model.json

beside this file. The tables below are the human read of the same data; the CSV is what the pipeline

consumes (§9). Every row's ruled_source column carries the citation summarized here.

6.1.1 People — *"how many npcs per village, how many in adventuring or neighboring villages and cities"*

The single most valuable derived fact in this whole section: the crowd-to-art-unit ratio is already

RULED, and it is 40 to 6. docs/RUNTIME_GENERATIVE_LAYER.md §A.1 line 83: *"A crowd of 40 sharing 6

persona buckets and one worldstate bucket is 6 cache entries, not 40 live calls."*

ENTITY_PERSONA_SYSTEM.md §2.3 states the art-side twin — ambient personas are *"thin, pooled, and

largely templated… they get a persona bucket, not an individual bible"* — and §5 adds that ambient

buckets *"live as shared templates, not per-entity docs."*

So Josh's question has a real, derived, ruled answer: **a forty-person village costs six NPC art units,

not forty.** The bodies are free; the buckets are the plates. Nobody has to guess a crowd size.

idClassFormulaSlice floor→targetFull game floor→target
D1-09NPCs — named personanamed registry rows × 2-plate sheet200 → 358328 → 2,000
D1-10NPCs — ambient crowd bucketssettlement zones × 6 buckets × 2 plates240 → 2401,086 → 1,086 (projected)
D1-11NPCs — antagonist operativesoperative rows × 222 → 22128 → 128
D1-12Enemies — non-boss classesNO FORMULA POSSIBLE00
D1-30Companions — base lookstaged companions × 26 → 636 → 36
D1-31Companions — outfit accretioncompanions × accretion states × 22 → 636 → 216

target adds a population v1.0 never counted: the region pages' **Section 12 "All Characters Full

Entries" blocks carry 79 named-figure entries** across the 12 pages (bali 15, sumatra_java 12,

west_africa 11, south_india 7, sri_lanka 6, and 5 or fewer elsewhere; rift_valley carries 0,

which is itself a finding — a deep-time node with no named-figure roster). These are page-authored

figures like *the mosalaki*, *the 'ata madi*, *the tu'a teno* — real social roles with real art

requirements. **Their overlap with the 164 registry rows is UNMEASURED and this document does not

guess it**, so the target is stated as the un-deduplicated sum and labelled as such. Full-game target

= the ruled-illustrative *"roughly a thousand-plus named entities once every chapter's roster is

expanded"* (ENTITY_PERSONA_SYSTEM.md §4.2), which is Josh's own scale target rather than a

projection of ours.

ruled buckets × 2 plates (portrait + costume) = 240. Full-game applies the slice's settlement

fraction (20/84 = 23.8%) to the 380 arc-wide site rows → ~90 settlements → 1,086, labelled

PROJECTED because 64 of 76 regions have no zone catalog yet (D3-15). **Floor equals target here on

purpose:** how many distinct LOOKS one bucket needs is unruled (D3-1), so the model refuses to

multiply. If a bucket turns out to need three looks to read as forty bodies, this line triples — and

that is a decision to be made, not a number to be assumed.

enemies"*. The honest answer: **the ordinary enemy has no row, no id prefix, no schema, and no rank

in the ranked queue.** Every countable combat population in canon today is either a named individual

(281 boss rows, 64 antagonist operatives, 164 characters) or an animal (150 creature rows). There is

no bandit, no soldier, no patrol, no hollowed mob. Verified exhaustively: all 62 registry

directories scanned by os.listdir with every CSV header regexed for

enemy|mob|faction|hostile|patrol|archetype|combatant|spawn|minion — 10 registries matched a column,

not one is an enemy table; T0_RNG_Drop_Table and T0_Boss_Attack_Rail are header-only with

0 data rows; no Faction registry exists (WS7_WIRING_BUILD_PLAN.md line 190 says so verbatim);

T0_Reputation_Ladder_Registry holds 2 exemplar rows; T1_Combat_System_Spec §9 names *"opponent

class"* as a variety axis and never enumerates it, setting density as prose only (*"in the dozens

of designed encounters"*). spawn_rate is blank on 150/150 creature rows. The zone catalogs'

ambient_threat is a 3-value scalar and nothing converts it into classes. The authority on this

is DESIGN_GAP_REGISTER.md line 33 — gap #1, the top-ranked gap in the register, class MISSING,

owner W-SPACE — and it is NOT in the 30-rank window plan, while rank 17 (*"per-enemy

weaknesses"*) presupposes the table that does not exist. That dangling dependency is flagged loudly

at §8.4. The art consequence: the program cannot size enemies, and any figure it published would

be invention. What it CAN do is name the unit for when the spec lands — the art unit is the enemy

CLASS silhouette, not the instance, exactly as D1-10's unit is the bucket and not the body.

*"different armor and outfits"*. What is ruled: gear PARITY and return-on-departure

(COMBAT_PROGRAM_ADDENDUM.md §9: *"a departing companion GIVES BACK the gear and investment"*),

landed as data in T0_Loadout_Set_Definition (applies_to_allies TRUE, departs_with_companion

FALSE on all 3 rows) — which rules gear stats and ownership, and says nothing about appearance.

What is ruled about appearance, for exactly one character: T3_Core_Characters [ACTIVE v1.0] §3.2 on

Ntala — *"Clothing evolves with each region visited; by late game it is a textile patchwork of every

culture encountered."* No equivalent line exists for any other companion, and

T0_Character_Index carries exactly ONE mesh_id_ref, so the schema structurally cannot express a

second outfit. This is a MISSING INPUT (D3-12) and it is EXECUTION, not Josh's — it is a schema

and sizing call inside a law he already authored. **Recommendation, applied: generalize Ntala's ruled

patchwork law to the companion class as an ACCRETION LADDER, not a per-region wardrobe.** A companion

who visits 40 regions does not need 40 outfits; she needs a look that visibly accumulates. Band the

ladder at 6 states (execution sizing) and the full-game line is 216 plates rather than the ~2,700

a literal per-region read would demand. The strongest objection: the accretion read is

characterization for a specific person (Ntala travels the whole arc from Ch 13), and a guest

companion aboard for four chapters may correctly need one look and no ladder at all — which the

formula handles, because staged-companion count and ladder depth are separate inputs.

6.1.2 Places and structures — including Josh's three mid-build amendments

Josh's amendments, verbatim: *"Not everyone has the same house. Where are the trades? City monuments

and art?"* Each is a first-class class below. Together they are the immersive-sim bar: a settlement

where every house matches and nobody visibly works is exactly the generic-slop failure the AAAAA

mandate bans, and v1.0's single "architecture kit per culture" row would have produced precisely that.

idClassFormulaSlice floor→targetFull game floor→target
D1-05Architecture kits per culturenodes with anchor × 7 building types98 → 134553 → 875
D1-06Dwelling variation within a settlementsettlements × status bands(3) × decay(2) [+ trade-marks]120 → 226540 (projected)
D1-07Trade physical presenceregion×trade pairs × 5 footprint units106 → 265668 → 1,670 (projected)
D1-08Civic monuments and public artcity-tier × node marks + lesser × 120 → 6779 → 380
D1-03Layouts — climactic sitessites with affordance × 3126 → 126663
D1-04Layouts — ordinary sitesremaining site rows × 146 → 46159

culture" and gave a prose form-count. The type roster below is read off the zone catalogs' own

vocabulary, and every one of the seven types is grounded in a named live zone row rather than

chosen from a generic list: dwelling (manggarai_village_edge, wae_rebo_village,

village_edura_ward), sacred (the 20 sacred_site zones), market (golconda_deccan_trade_node,

palembang_port, kilwa_kisiwani), forge (wootz_forge_and_herbalists_room,

ile_ife_bronze_city — TRADE_03), authority-hall (abomey_royal_court, todo_royal_village,

sovereign_hall), knowledge (aksum_scriptorium — TRADE_09), workings/extraction

(witwatersrand_kimberley_workings — TRADE_02). 14 slice nodes × 7 types = 98 kit-form sheets

as the floor; v1.0's ~134 prose-derived named forms becomes the TARGET, which is the right relation

between the two figures — the floor is what the roster demands, the target is what the prose already

describes.

supporting canon is the persona doctrine: web_position carries *"kin, teachers, faction ties,

rivalries"* per person (ENTITY_PERSONA_SYSTEM.md §2.2), and the regions-are-relational-webs

doctrine makes a settlement a web of differentiated positions rather than a set of interchangeable

huts. A fisher's house, the healer's, and the headman's are three different social positions with

three different homes, and the doctrine already says so — it had simply never been read as an art

requirement. Three variation axes, and only one of them needed a new number:

T0_Dwelling_Registry holds 2 rows and both are PLAYER homes (DW_0001 trade-home from CH_05,

DW_0002 world-home from CH_39) — there is no NPC dwelling class table at all. But the region

pages' own rank vocabulary consistently names three layers: an AUTHORITY layer (the *mosalaki*

customary leader, the *tu'a teno* ritual authority, the *tuka timba mata dasi* balance-judge), a

PRACTITIONER/specialist layer (the *'ata madi* oath-reciter, the counter-practitioner, the trade

masters), and the implicit COMMONER residual. Recommend 3 bands because the pages already speak

in three; recording it as a missing input because the pages are prose and the number is not yet

schema.

the region×trade practice matrix below (D1-07), reused rather than re-derived.

exactly two values (DR-2 item 6-D clause D3: the place at its height, the place's authored

present). The dwelling model reuses that axis rather than minting a wear ladder, which keeps the

multiplier ruled and the plate count honest.

→ 20 settlements × 3 bands × 2 decay = 120 plates FLOOR; adding the 53 trade-marked variants

gives 113 distinct looks × 2 = 226 TARGET.

DESIGN_GAP_REGISTER.md line 214 lists *"Enterable interior density"* under GTA V / RDR2 as

DIVERGENT-BY-DESIGN, and the register defines that term precisely: *"we deliberately differ (a

design choice, not an oversight)."* So the divergence from GTA-density interiors IS ruled; **what

our interior density actually is, is not.** Recommendation, applied: interiors for

STORY-BEARING homes only, derived from the spine's own site rows (a home that hosts a beat gets

an interior; a silhouette on the hillside does not) — which respects the declared divergence

instead of quietly reversing it.

*"Where are the trades?"* is a density question, and it now has a matrix behind it. Counting

T0_Trade_Registry's 10 trades against each region page's **Section 14 (Trade Skills, Detailed

Content): bali 10, sumatra_java 10**, congo 5, sri_lanka 4, swahili 4, west_africa 4, flores 3,

angkor 3, rift_valley 3, south_africa 3, ethiopia 2, south_india 2 = 53 pairs. Per-trade spread:

TRADE_04 Herbalism 11 of 12 regions, TRADE_08 Engineering 8, TRADE_09 Inscription 6, then Mining /

Blacksmithing / Tailoring / Fishing 5 each, Animal Communication 4, Alchemy and Culinary 2 each. The

footprint unit is five things, and each is a real art requirement rather than a category: the

workshop exterior, the workshop interior, the market stall, the work-in-progress scene

(the thing that makes a settlement read as inhabited rather than staged), and **signage in the

region's own script — which has a live substrate: T0_Language_Script_Registry carries 87

scripts, 21 reading into the slice**, typed by inscription_application_class (STONE_CUT 56,

PERFORMATIVE 7, DOCUMENTARY_PAPER 7, METALLIC_CAST 5, ORAL 4, GEOGLYPHIC 3…), so a forge's sign can

be cut in the correct medium and not merely lettered. FLOOR = 53 × 2 (exterior + WIP scene, the two

no ruling makes optional) = 106; TARGET = 53 × 5 = 265. Missing input: the trade-home compound

visual rail is 2/10 populated on home_base_upgrade_ceiling, compound_membership and

shared_build_grammar_ref (D3-10), and workshop enterability inherits D3-3.

monuments and art?"* lands on the civilizational_marks lane — the ruled L2 builders-of-knowledge

field (DEEP_BOOK_PROCESSING_CONTRACT.md §2.5b, schema at EXR_RECORD_SCHEMA_v0.2.md §7, consumed

by harness/enrich.py's civ_marks_hints() and printed as pack section *"0d. CIVILIZATIONAL MARKS

(MANDATORY L2 field)"*). It is live at 380 mark bullets across 79 nodes (min 3, max 10 at CH_15,

median 5), with 70 in the slice and a further 79 queued in docs/proposals/civ_marks_queue/.

Its relevance ticket is significance lens E2 — "Visual art, iconography and aesthetic canon"

(SIGNIFICANCE_LENSES.md line 71). The monumental half also has live rows:

T0_Vril_Site_Registry's 42 sites include megalith 5, obelisk 2, geoglyph/earthwork 2. So the

formula is: **city-tier settlements carry civic art drawn from their own node's marks; lesser

settlements carry a shrine or marker. 9 city-tier × 5 marks + 11 lesser × 2 = 67 TARGET**, floor

20 (one civic piece per settlement zone, the no-settlement-is-bare floor). Arc-wide the honest

target is 380 — one physical realization per mark bullet — with floor 79 (one per node). Missing

input D3-9: not every mark is an object (a mark can be a mathematical technique or a

stoneworking method), so the lane needs a mark_physicality flag before the 380 is a work order.

The portable-artwork half — statues, masks, textiles, relics as carried items — has **no registry at

all**; the shape-correct empty stub is T0_Equipment_Registry (1 row, already carries item_class +

region_native), and that is D3-8.

6.1.3 The living world — *"how many herbs and foliage and trees"*, creatures, the supernatural

idClassFormulaSlice floor→targetFull game floor→target
D1-15Creatures — species basespecies × 3345 → 345450 → 1,260
D1-16Folklore and mythological beingsentity tokens × 3174 → 186350
D1-17Legendary species33 ruled × 40 → 0132
D1-18Flora and herb platesflora rows × 250 → 50175 (projected)
D1-19Foliage and biome dressing setsdistinct (region × terrain) pairs54 → 108342 → 684 (projected)
D1-20Minerals and gather nodesminerals + gather nodes per region43 → 67498 (projected)
D1-21Festivals and ceremony setsfestival rows × 232 → 32608 (projected)
D1-29Familiarsfamiliar rows × 330 → 3066

asked about herbs, foliage and trees as if they were three counts; they are two, and one of them is

not a per-plant count at all. **A forest is not authored plant by plant — it is authored as a

per-biome dressing set** (canopy, understory, ground cover, deadfall, the region's signature

silhouette). So the unit is the SET, and the denominator is the number of distinct biome contexts.

Derived from the zone catalogs: 54 distinct (region × terrain) pairs across the 12 slice regions

— flores 6, south_africa 6, sri_lanka 6, west_africa 6, ethiopia 5, bali 4, rift_valley 4,

south_india 4, swahili 4, angkor 3, congo 3, sumatra_java 3. That is the slice's foliage-set FLOOR:

54 set sheets. The TARGET doubles it by re-reading the same pairs on footfall_surface (populated

84/84, five classes) for the ground-treatment set — a floor the eye reads constantly and which no

other class covers. Full game projects at 4.5 sets per region over 76 rows = 342, labelled

PROJECTED. The per-PLANT count stays separate and small: T0_Flora_Registry holds **25 rows

across 11 regions** (a v1.0 correction — v1.0 said the flora registry covered only 4 regions; it

covers 11), and those are identification plates for gatherable species, which is a different art job

from dressing a hillside.

gather nodes per region. So slice floor = the 19 minerals + 24 live gather rows = 43**; target =

19 + (12 regions × 4) = 67. This is the one class where a ruled band exists at exactly the grain

the art program needs, and it is used verbatim.

420+ ruling (§1.2's note). Folklore beings stay at the slice's 58 tokenized entities with the

honest 58-62 range. **Legendary species enters the model for the first time at its RULED count: 33

(21 mortal + 12 elven), CVD §17.12 cardinal numerical canon** — 132 plates arc-wide at a 4-plate

hero sheet, 0 in the slice because the fairy realm builds last. Note the composition with the

twenty-second sitting: only one of the twelve elven species is ever a player-linked familiar (the

childhood bond of Ch 1); the other eleven are world-facing art and still need sheets, which is why

they are sized here rather than folded into D1-29.

6.1.4 Objects and systems — the weapon lattice, rarity, and the VFX line

THE WEAPON LATTICE, derived honestly. Josh's framing was exact: *"our 72 weapon types are just

types and they have an entire tiered system with cultural namings and legendaries and abilities."* Four

axes, and they cost radically different amounts. The naive product explodes; the ART-UNIT product does

not, because two of the four axes parameterize.

AxisRuled countIs the art unit a new plate?Cost
TYPE silhouette72 rows, 11 subclasses, BRUTE 36 / TRICKERY 36YES — one 3-plate sheet per type216 plates
GRADE variant6 art-bearing of T0_Rarity_Grade's 8 item_grade tokensNO — a material/trim/emissive pass432 variants, 11 boards
REGIONAL cultural skinUNRULEDYES, and expensiveNOT SIZEABLE
LEGENDARY bespoke72 ruled as a count; 1 rosteredYES — a 4-plate hero sheet288 plates

are none / common / uncommon / rare / epic / legendary / mythic / signature. none is the slotless

floor and bears no art; 5 are rollable (commonlegendary); mythic is obtainable_by_roll=FALSE,

gate_kind=questline — THE MYTHIC TOOTH, ruled at the seventeenth sitting as a post-endgame

achievement grade; signature is unique_per_type=TRUE. So 6 grades bear art, matching Josh's

own "5 rarity grades + mythic" read with signature as the seventh, unique case. **72 × 6 = 432

grade variants — and they cost 11 boards, not 432**, because §2.2 already batches object boards by

subclass: one grade-ladder language board per subclass sets the family's whole ladder. This is D4's

cheapest large win.

no rarity or grade column at all (D3-7), so the item_grade axis has nothing to join to. Also

corrected from v1.0: canonical_chapter_acquisition is now populated on 10 of 72 rows, not 2 —

the mapping is improving but 62 remain blank (rank 13).

(CVD §12.5 / Pillar 10, *"weapon-of-origin bonuses"*, regional combat identity) and a full 72-row

proposal exists with a *Cultural instance / home* column on every row

(docs/proposals/WEAPON_SYSTEM_PROPOSAL.md §5.1-5.2, e.g. Scimitar → *shamshir / saif / kilij /

nimcha*). But nothing landed: the registry has no cultural-name column, Pillar 10's named

artifact — the Regional Combat Modifier table — *"has no registry"* and Pillar 10 is

*"data-unfalsifiable"* (FOUNDATION_ENHANCEMENT_ROADMAP.md lines 304-309), and the proposal itself

carries [DECISION NEEDED - JOSH] flags at lines 232 and 234, the latter explicitly *"Touches weapon

naming/identity."* Naming is cardinal canon and this program does not touch it. Until it is

ruled, the regional multiplier is unknown and D1-24 is sized at zero rather than at a convenient

guess — the one place in this document where a zero is the honest number and not a gap in the search.

*"72 legendary weapon quest triggers"* (T1_Build_Pipeline_Contracts line 63; echoed in

COMBAT_PROGRAM_ADDENDUM.md and T0_Rune_Registry RN_0016). Exactly one is rostered

LEG_WPN_036 in T0_Questline_Index, gating WPN_036 the macuahuitl — and that row's own note is the

finding: *"the full 72-instance legendary roster + its id/name convention are unrostered in the

corpus."* COMBAT_ENCOUNTER_SYSTEM.md line 446 agrees: *"No legendary-quest boss is authored."* The

art is sizeable (72 × 4 = 288) because the count is ruled; the 71 NAMES are not ours to mint.

idClassFormulaSlice floor→targetFull game floor→target
D1-22Weapons — type silhouettetypes × 330 → 195216
D1-23Weapons — grade variantstypes × 6 art-bearing grades0 → 165432
D1-24Weapons — regional skinsUNRULED multiplier00
D1-25Weapons — legendary bespoke72 ruled × 40 → 0288
D1-26Equipment and carried objectsrows × board15 → 1515
D1-27Ability VFX — mastery-tier variantselement×tier keys × 369 → 69744 → 1,116
D1-34UI iconography and rarity languageboard + rarity rows × 4 icons67 → 6767
D1-35Per-region exchange mediaregions × 10 → 120 → 76

splitting the question.** Two different things were bundled: *rarity* and *regional economy*. The

ruled per-region fact is the mixed-exchange economy — no universal coin (ship rulings,

2026-07-24), which is a CURRENCY art class: 12 slice regions × one exchange-medium plate (the cowrie,

the weight, the bar, the token). **Rarity is the opposite case, and the recommendation is to keep it

GLOBAL.** Per-region rarity variance is not ruled anywhere, and it should not be invented: a rarity

ladder whose colours and beams change per region destroys the exact instant-read the ladder exists to

provide. Recorded as a decided-not-to (D3-13), applied rather than flagged, with the strongest

objection stated — a globally uniform rarity language is one of the few surfaces where this game

looks like every other loot game, and if that ever reads as slop the answer is a richer global

ladder, not a regional one.

12-tier clamp**, ruled at FULL per-tier strength at the fourteenth sitting (*"OPTION (A) — FULL

PER-TIER VARIANTS… no band collapse, no hybrid inheritance"*), with *"parametric interpolation only

INSIDE an authored tier's polish pass, never instead of one."* This is the one variant axis that D4

classes as EXPENSIVE because a ruling says it may not be cheapened — the engine doctrine's D10

makes serving a tier-1 effect for a tier-12 ability a canon defect, not a scalability choice. 1,116

plates at the clamp is the ruled answer, not an overrun.

6.2 D2 — the revised totals

Full per-class arithmetic is §7. The bands, and the honest reading:

v1.0v1.1 FLOORv1.1 TARGET
Slice (14 nodes / 15 legs)~1,990~2,525~3,470
Full game (79 nodes / 76 region rows)~8,170 (~8,540 at clamp)~12,800~17,880

Composition of the full-game band, so nobody has to trust a single number:

BasisClassesFloorTarget
COUNTED — a live row count or a ruled ceiling348,88212,615
PROJECTED — a labelled ratio over an unbuilt surface73,9175,261
NO COUNTABLE HOME — sized at zero, honestly200
GUESSED000

The decimal place moved, and here is exactly why. The full-game target is 2.2× v1.0's figure.

None of the growth is inflation; all of it is one of five specific things, each traceable to a row:

1. Two ruled ceilings replaced two live-row counts. Creatures 150 → 420 (T3, confirmed by Josh

at the twenty-fourth sitting) and named entities 164 → 1,000+ (ENTITY_PERSONA_SYSTEM §4.2, which

is Josh's own scale target). Those two changes alone add ~2,900 plates.

2. Three of v1.0's "NO COUNTABLE HOME" rows became countable once the zone catalogs were read:

ambient crowd buckets (1,086), foliage sets (342), and the dwelling/trade/civic settlement layer.

3. Josh's three amendments added three genuinely new classes — dwellings, trade footprints, civic

art — worth ~2,590 at target and about 30% of the growth. They are not embellishments; without them

the settlements are interchangeable and unpopulated, which is the failure mode the mandate names.

4. Five classes that v1.0 correctly marked NOT SIZED are now PROJECTED with their method labelled

(flora, minerals/gather, festivals, dwellings, trades). Each carries a per-region ratio from the

built regions and each is flagged so nobody mistakes the projection for a count. If the unbuilt

regions populate more thinly than the four built ones, these fall — and they should be re-derived

per leg rather than trusted.

5. The weapon lattice was decomposed from one 216-plate row into four axes totalling 936 —

silhouette + grade + legendary — with the regional axis still at zero pending Josh.

What would make the target WRONG in the other direction. Three of the four cheap axes (D4) are

cheap *because a ruling makes them parameterizable*. If the per-bucket variant depth (D3-1) turns out

to need three looks, D1-10 triples to ~3,300. If interiors (D3-3) land at anything above story-bearing

homes, D1-06 and D1-07 both grow. And the whole per-settlement layer rests on **20 settlement zones

across 12 of 76 regions** — the arc-wide figure is a projection over a surface that does not exist yet

(D3-15), and it is the single largest source of error in the band.

6.3 D3 — the missing-input register

Thirty classes carry a missing input. Each has a future home and a ruler. Two are genuinely Josh's

— both weapon-naming canon. The rest are execution: schema adds, populate legs, and sizing calls

inside laws already ruled, which under the cardinal rule are generated and applied with the path

shown, not flagged.

#Missing inputFuture homeRuler
D3-1Ambient-bucket variant depth — how many looks one of the 6 buckets needs to read as 40 bodiesrank 11's T0_Persona_Index mint + a bucket_variant_count columnexecution
D3-2NPC dwelling status-band count — recommended 3, grounded in the region pages' own rank vocabularyT0_Dwelling_Registry widened from its 2 player-home rows to an NPC dwelling class tableexecution
D3-3Enterable-interior density — the divergence from GTA-density IS ruled; our floor is notthe W-SPACE interior spec; recommendation applied = story-bearing homes onlyexecution
D3-4Non-boss enemy classes — no row, no prefix, no schema*"a solo-scoped engagement spec under T1_Combat"* (DESIGN_GAP_REGISTER.md lines 63-66) + VOL2 §E TG-9 construct class + TG-12's Creature_Roster aggro columnsexecution — but UNQUEUED; see §8.4
D3-5Per-region cultural weapon namingWEAPON_SYSTEM_PROPOSAL.md §5.1-5.2 → a T0_Weapon_Registry cultural-name columnJOSH — cardinal naming canon; the proposal already flags it at lines 232/234
D3-6The 71 unrostered legendary weapons — names and id conventionthe legendary-weapon questline roster; T0_Questline_Index states the absenceJOSH — naming canon against a ruled count of 72
D3-7Weapon grade→registry join — no rarity column exists on the weapon registryrank 5 / the reward-taxonomy class-table briefexecution
D3-8Portable relic / artwork-object registry — statues, masks, textiles, relics as carried itemsT0_Equipment_Registry (1 row; already carries item_class + region_native)execution
D3-9mark_physicality flag — which civilizational marks are objects rather than techniquesthe civ_marks_queue + EXR_RECORD_SCHEMA_v0.2.md §7execution
D3-10Trade-home compound visual rail — 2/10 on three columnsT0_Trade_Registry populateexecution
D3-11Zone-level biome classworldcover_biome 0/84, terrain_feature_class_ids 4/76rank 30, the Region_Index environment railexecution
D3-12Companion costume slot — one mesh_id_ref per character; the schema cannot hold a second outfitrank 5 mesh_tags + a costume_set_ref column; generalize Ntala's ruled patchwork lawexecution
D3-13Per-region rarity variance — not ruled; recommendation is to keep the ladder GLOBALrecorded here as a decided-not-toexecution (decided)
D3-14Ch 6-13 density bands + Prologue/Ch-1 sentinels — the ruled blocker the art model inheritsthe band/sentinel pass, landing with check_slice_scorecard.py (does not exist)execution — precondition for validating any per-node target past Ch 5
D3-15Arc-wide zone catalogs — 12 of 76 regions have one; every full-game per-settlement figure is a ratiothe per-region page build, one per legexecution
D3-16Slice weapon mapping — 62 of 72 blank canonical_chapter_acquisitionrank 13execution
D3-17Creature variant populationspawn_rate 0/150, rare_variant 10/150, dex_completion_class 1/150the region-leg creature populate + the ~270-species remaining mintexecution
D3-18Festival / flora / mineral / gather arc coverage — registries cover 4-11 of 76 regionseach region leg extends its own registry as it landsexecution
D3-19Region-page-to-registry NPC overlap — the 79 Section-12 figures vs the 164 registry rowsa dedup pass at rank 11's persona mintexecution
D3-20Realm and rarity art hooks — 0/11 and 0/13the boards themselves fill them (§2.5)execution

6.4 D4 — the variant-axis multipliers: what is CHEAP and what is not

Josh named four creature variant axes and four weapon axes in one breath, which reads like a

combinatorial explosion. It is not, and the distinction is the most useful thing this section

produces: an axis either MULTIPLIES PLATES or it PARAMETERIZES them. A shiny is a recolour pass,

not a new board. Getting this wrong in either direction is expensive — treating a cheap axis as

expensive wastes the 5090's nights, and treating an expensive axis as cheap ships slop.

CHEAP — parameterize; no new board, often no new plate. 15 of 43 classes.

AxisWhy it is cheapRuled basis
Creature rare-variant "shinies"The morph taxonomy is a RULED six-member set — leucism, melanism, xanthism, piebaldism, chimerism, cultural-sacred-variant. Every one is a hue/mask operation on the base sheet. ONE morph-law language board covers all 420 species.T3_Creatures_Tameable §2 rare-variant framework; CVD §17.13 sigma bound
Creature breedingOffspring are a parametric blend of parent sheets — no plate at all. The art cost is zero; the cost is a blend rule.T3_Familiars_Named §1.7 Familiar Garden + breeding firewall
Spawn ratesNo visual surface whatsoever.
Hollow variantsA surface-grammar pass governed by the class-19 Hollow language board, which is already P0. One pick, applied to every creature and rift.T0_Hollow_Codex; the hollow-expansion axes (TWO TIERS ruled)
Weapon grades72 × 6 = 432 variants delivered by 11 subclass boards as material/trim/emissive passes over an existing silhouette.T0_Rarity_Grade item_grade; §2.2 object-board batching
NPC crowd bodies40 bodies per 6 buckets, RULED. The 34 extra bodies are free.RUNTIME_GENERATIVE_LAYER.md §A.1 line 83
decay_stageRuled at exactly two values, so it doubles only the decay_bearing subjects — a bounded condition pass, not an open ladder.DR-2 item 6-D clause D3
Dwelling wear/ageReuses decay_stage rather than minting a wear axis.the same clause
Foliage and ground setsThe unit is the SET; a hillside is dressed by instancing, not by authoring plants.Zone Catalog terrain + footfall_surface

EXPENSIVE — a real new plate or board per instance. Each of these is a per-instance authoring cost

and none can be parameterized away.

AxisWhy it is expensive
Creature SPECIES baseThe only creature axis that costs a sheet. 420 ruled species × 3 = 1,260 plates.
Weapon TYPE silhouette (72) and LEGENDARY bespoke (72)A legendary is a story object with a questline; it cannot inherit a family's grammar.
Weapon REGIONAL skinExpensive AND unruled — the worst combination, and the reason D3-5 is Josh's.
NPC ambient BUCKET (6/crowd)The bucket IS the plate. Cheap per body, expensive per bucket.
Named NPC persona sheetEach is a specific person in a specific web position.
Architecture kit; dwelling status band; CIVIC MONUMENTA civic monument reflects its own settlement's history — it is the one class that structurally cannot be shared between settlements, because sharing it would erase the differentiation that is its entire purpose.
Companion outfit accretion stateBanded at 6 by recommendation precisely because the literal per-region read is unaffordable.
Mastery-tier ability VFX (248 live / 372 clamp)Expensive BY RULING. The fourteenth sitting overruled the band collapse; D10 makes serving a tier-1 effect for a tier-12 ability a canon defect. This is the one axis where "make it cheap" is the wrong answer and the ruling says so.

The headline for the factory: of the eight axes Josh named, five are cheap (breeding, shinies,

rates, hollows, grades) and the two that are not — species bases and legendary weapons — are exactly

the two whose counts are already ruled. The per-tier VFX axis is expensive on purpose. So the density

model's growth is concentrated in a small number of classes, and every one of them is either a ruled

ceiling or one of Josh's three amendments.

---

7. DERIVED TOTALS TABLE — FLOOR AND TARGET BANDS

Plate arithmetic uses the unit definitions in §1.1 and the 15-plate board of §2.1. v1.1 change:

every line is a FLOOR→TARGET band per §6.0's ruled density curve, and classes with no countable home

are shown at zero with the reason rather than omitted. **The zone catalogs' 84 rows are NOT a separate

plate line** — they are the page-side mirror of the spine's 88 site rows and are used as the

settlement/biome denominator, so counting both would double-count the same ground.

7.1 Slice — Prologue + Ch 1-13, 14 nodes over 15 region legs

idClassSubjectsUnitFLOORTARGETJosh boards
D1-01Region key art12 earthly (fairy counts once, on D1-32)board18018012
D1-02Mood / light / weather13 → 14 nodes4-plate sheet52560
D1-03Layouts — climactic sites42 of 883-plate plan1261260 (tiered)
D1-04Layouts — ordinary sites461-plate plan46460
D1-05Architecture kits14 nodes × 7 building types → ~134 formskit sheet981341 (P0 exemplar)
D1-06Dwelling variation20 settlements × 3 bands × 2 decay (+53 trade-marks)plate1202260
D1-07Trade physical presence53 region×trade pairs × footprintsheet1062650
D1-08Civic monuments and public art9 city-tier + 11 lesser settlementsplate20670
D1-09NPCs named100 registry rows (+79 page figures, overlap unmeasured)2-plate sheet2003580
D1-10NPCs — ambient crowd buckets20 settlements × 6 ruled buckets2-plate sheet2402400
D1-11Antagonist operatives112-plate sheet22220
D1-12Enemies — non-boss classesNO COUNTABLE HOME (gap #1)000
D1-13Bosses — main14 (12 boarded)board18018012
D1-14Bosses — sub364-plate sheet1441440
D1-15Creatures and fauna115 of 150 minted3-plate sheet3453450
D1-16Folklore beings58 tokenized (58-62 honest)3-plate sheet1741860
D1-17Legendary species0 — fairy realm builds last4-plate sheet000
D1-18Flora and herb plates25 rows across 11 regions2-plate50500
D1-19Foliage and biome sets54 (region × terrain) pairsset sheet541080
D1-20Minerals + gather nodes19 + 24 live → A.1 band 2-4/region1-plate43670
D1-21Festivals16 rows (4 regions)2-plate32320
D1-22Weapons — type silhouette10 mapped of 72 (was 2 in v1.0)3-plate sheet301950
D1-23Weapons — grade variants11 subclass grade boardslanguage board0165(in D1-34)
D1-24Weapons — regional skinsUNRULED multiplier — Josh's000
D1-25Weapons — legendary bespoke0 in slice4-plate sheet000
D1-26Equipment1 (EQ_0001)board15151
D1-27Magic and VFX9 element×tier pairs, 18 abilitieslanguage board + variant set69691
D1-28Rifts and Hollow1 codex + 5 classeslanguage board15151
D1-29Familiars103-plate sheet30300
D1-30Companions — base look3 staged (Ch 2-7 SOLO by ruling)2-plate sheet660
D1-31Companions — outfit accretionNtala's ruled law, generalizedvariant260
D1-32Realms1 (fairy, 4-panel, slice-end)board20201
D1-33Vehicles1 (VH_002 CH_08)3-plate sheet330
D1-34UI and rarity iconography13 rarity rowslanguage board67671
D1-35Per-region exchange media12 regions, mixed-exchange ruledplate0120
D1-36Cinematic key frames1 (SCENE_PROLOGUE_OPENING)4-plate440
D1-37Inscriptions and scripts21 of 871-plate21210
D1-38Schools0 — schools begin Ch 15000
D1-39Runes0 mapped of 192-plate000
D1-40Vril sites23-plate660
D1-41Dungeons and rift interiorsno slice subset of the arc-wide 20000
D1-42Minigames2 (MG_0001 Caci, MG_0002 Senet)2-plate440
D1-43Motifs1 (MOT_0001)1-plate110
SLICE TOTAL~2,525~3,47130

Of the slice total, ~450 plates are Panel A/B on Josh-facing boards (unchanged from v1.0 — the

board count did not grow, the plate density behind it did). 1,880 → 2,483 of the total is COUNTED;

645 → 988 is PROJECTED and labelled per row in density_model.csv.

Four v1.0 slice lines changed, and each for a stated reason: architecture kits gained a derived

7-type roster (floor 98 under the old 134); weapons went from 2 mapped to 10 (a live registry

improvement, not a re-read); three "NOT SIZED" rows became real numbers (crowd buckets 240, foliage

sets 54, and the dwelling/trade/civic layer at 246→558); and the housing line was corrected —

QUEST_SEED_HOUSING_LEDGER holds 400 rows of which 264 are UNROUTED across 13 shelves, not

"264 seeds on the 4 built regions" (§8.2). Those 264 are side-content surfaces that route to other

classes rather than a plate line of their own: 85 encounter, 43 mini_arc_situation, 36

minigame_class, 31 festival_or_daily_immersion, 26 side_questline_candidate, 22

trade_expression, 18 region_page_section, 3 vehicle_or_mount.

7.2 Full game — 79 nodes, 76 region rows

B column: C = counted (a live row count or a ruled ceiling) · P = projected by a labelled

ratio over an unbuilt surface · X = no countable home, sized at zero.

idClassSubjectsBFLOORTARGETJosh boards
D1-01Region key art66 boards over 76 rowsC99099066
D1-02Mood / light / weather79 nodesC3163160
D1-03Layouts — climactic221 of 380C6636630
D1-04Layouts — ordinary159C1591590
D1-05Architecture kits79 × 7 types → ~875 prose formsC5538750
D1-06Dwelling variation~90 settlements × 3 bands × 2 decayP5405400
D1-07Trade physical presence~334 region×trade pairs × footprintP6681,6700
D1-08Civic monuments and public art380 civilizational-mark bulletsC793800
D1-09NPCs named164 rows → 1,000+ ruled named entitiesC3282,0000
D1-10NPCs — ambient crowd buckets~90 settlements × 6 ruled bucketsP1,0861,0860
D1-11Antagonist operatives64C1281280
D1-12Enemies — non-boss classesNO COUNTABLE HOME (gap #1, unqueued)X000
D1-13Bosses — main79C1,1851,18579
D1-14Bosses — sub + environmental202C8088080
D1-15Creatures and fauna150 minted → 420+ RULEDC4501,2600
D1-16Folklore beingsscaled from the slice's 58-per-14C3503500
D1-17Legendary species33 RULED (21 mortal + 12 elven)C1321320
D1-18Flora and herb plates~2.3 per region over 76P1751750
D1-19Foliage and biome sets~4.5 sets per region over 76P3426840
D1-20Minerals + gather nodesA.1 band 2-4 per regionP4984980
D1-21Festivals~4 per region over 76P6086080
D1-22Weapons — type silhouette72C2162160
D1-23Weapons — grade variants72 × 6 art-bearing grades, 11 boardsC432432(11 boards)
D1-24Weapons — regional skinsUNRULED multiplier — Josh's (D3-5)X000
D1-25Weapons — legendary bespoke72 ruled, 1 rosteredC2882880
D1-26Equipment1 rowC15151
D1-27Magic and VFX248 live / 372 at clampC7441,116(in D1-34)
D1-28Rifts and Hollow1 codex + 5 classesC15151
D1-29Familiars22 (HELD until the fairy-realm wave)C66660
D1-30Companions — base look12-18 ratified bond-bearingC36360
D1-31Companions — outfit accretion18 × 6 recommended accretion statesC362160
D1-32Realms10 × 2 decay conditionsC30030010
D1-33Vehicles3C990
D1-34UI and rarity iconography13 rowsC67671
D1-35Per-region exchange media76 region rowsC0760
D1-36Cinematic key frames16C64640
D1-37Inscriptions and scripts87 scripts / 98 spine rowsC1851850
D1-38Schools13C39391
D1-39Runes19C38380
D1-40Vril sites42C1261260
D1-41Dungeons — Class A20 (bounded); B/C/D/E open cardinalityC60600
D1-42Minigames2 live rows (36 seeds UNROUTED)C440
D1-43Motifs1C110
FULL-GAME TOTAL~12,799~17,876161

7.3 Read the totals honestly

The decimal place moved and the document says so rather than smoothing it. v1.0 published a single

~8,170 figure; v1.1 publishes ~12,800 FLOOR → ~17,880 TARGET, and the target is 2.2× v1.0. Five

traceable causes, itemized at §6.2, with no sixth: two ruled ceilings replaced two live-row counts

(creatures 150→420, named entities 164→1,000+), three of v1.0's NOT-SIZED rows became countable off the

zone catalogs, Josh's three amendments added three real classes worth ~2,590 at target, five NOT-SIZED

rows became labelled projections, and the weapon lattice decomposed into four axes.

What is still NOT SIZED, honestly. Two classes sit at zero because no formula is possible:

non-boss enemies (D1-12 — the top-ranked gap in the register, and unqueued) and **regional weapon

skins** (D1-24 — Josh's naming call). Dungeon Classes B/C/D/E remain open-cardinality and only Class A's

ruled 20 is counted. And seven classes are PROJECTED, contributing 3,917 → 5,261 — about 30% of the

band — every one of them extrapolated from the 4-to-12 built regions onto 76. If the unbuilt regions

populate more thinly, those seven fall. They should be re-derived per region leg as each page lands,

not trusted; derive6.py re-runs them from live rows in one command, which is the point of shipping it.

The five largest single lines, all either a ruled ceiling or a Josh amendment: named NPCs (2,000, on

his own scale target), trade physical presence (1,670, his amendment), creatures (1,260, the ruling he

himself corrected), bosses main (1,185), and the per-tier magic variants (1,116 at clamp, ruled at full

strength at the fourteenth sitting). Not one of the top five is a number this program invented.

---

8. METHOD AND PROVENANCE

Every count above was produced by script against the live tree at 2026-07-29 and is reproducible.

Working scripts sit beside this file: derive.py (registry headers and slice distributions),

derive2.py (region rail population, spine site rows, boss and creature per-node splits, art-hook

population), derive3.py (sub-locations, folklore entities, chapter art axes), derive4.py (ability

key space, weapon mapping health, assetgen population), derive5.py (climactic and protected site

selectors), and **derive6.py (new in v1.1 — the density derivations: zone catalogs and settlement

tiers, region-page named figures, the region×trade practice matrix, civilizational-mark bullets, the

weapon lattice axes, the housing ledger, creature variant-axis population, scripts, and the per-region

registries)**. derive6.py is repo-root-relative and re-runnable under harness/ conventions per §9.2;

emit_density_model.py turns density_model.csv into the JSON the pipeline reads and re-computes every

total in §7 so no figure in this document is hand-summed.

8.0 A concurrent lane was mid-flight during derivation

The tree carried uncommitted work from another lane while this document was being derived (an

emotional-curve gate: new harness/check_emotional_curve.py plus scorecard, and edits to

docs/DOC_MAP.md, docs/PRE_5090_BUILD_PLAN.md, docs/fidelity_baseline.json,

docs/registry_extensions.json, harness/gates_config.json and the T0_Chapter_Index CSV). This

program wrote nothing to the repo.

The T0_Chapter_Index change rewrote all 160 lines, which matters because several counts here derive

from it, so it was diffed against HEAD rather than assumed. The change is purely ADDITIVE — three new

columns, emotional_register, emotional_valence_arc and cost_ledger, with no column removed and

79 rows before and after. Every figure taken from that registry is identical across the two versions:

slice nodes 14, region_secondary tokens 94, folklore tokens 58. The line citations to

PRE_5090_BUILD_PLAN.md (rank 5 at line 70, rank 10 at 81, rank 11 at 88, SLICE RESCOPE at 146-158)

were re-verified against the modified file and all still resolve. The one substantive gain is

emotional_register at 79/79, which §5.2 now adopts as class 2's mood key.

8.1 Corrections to figures the task briefs carried

From the v1.0 brief:

minted-so-far population against a RULED ceiling of 420+.

two. This is the fact behind Josh's 14-nodes-but-15-legs ruling.

New in v1.1:

seeds on the 4 built regions" as the v1.1 brief carried. The 264 is the UNROUTED count

(disposition is exactly two-valued: UNROUTED 264, weave_only 136), and the shelf spread is

flores-indonesia 106, sumatra-batak 67, fairy-literary 64, bali 55, esoteric 24, rome-italy 17,

vietnam 17, malay-world 15, sumatra_java 12, angkor-khmer 10, early_modern_italy 7, cross-cutting 5.

Also: proposed_quest_type is blank on 400/400, so the ledger's own quest-type field is

unpopulated — worth naming because a gate asserts it must be a §6.5 member or the literal none.

registries; flora is materially better covered than its neighbours (minerals 19 rows, gather nodes 4

regions, festivals 4 regions). Corrected in D1-18.

"2 mapped of 72" is superseded by a live registry improvement between the two passes.

asked "72 legendaries?" — the answer is: the count is ruled canon in three places, exactly one

instance (LEG_WPN_036, the macuahuitl) is rostered, and T0_Questline_Index's own note says the

full roster and its id/name convention are unrostered.

(4) and creature_spawn (1). Weapons inherit item_grade; the brief's "5 rarity grades + mythic"

maps to the 5 rollable tokens plus mythic, with signature as a seventh unique-per-type case.

trade-home (from CH_05), DW_0002 the open-world dwelling-home (from CH_39). Josh's "not everyone has

the same house" therefore has no schema home at all today, which is why D3-2 exists.

compound_membership, shared_build_grammar_ref) while its design-facing columns are 10/10

(pillar_9_substrate_concept, twelve_tier_quest_gates, ceremony_quest_refs). The trades are

designed and not yet built-out — exactly the split Josh's "where are the trades?" points at.

8.2 Three silent-zero traps caught during derivation

Recorded because each would have written a false zero into this document, and the repo's own law says

a search that cannot match reports zero.

1. Glob brackets. Registry directory names contain [DRAFT v0.1], and Python's glob reads

[...] as a character class, so glob.glob('.../T0_Boss_Encounter_Registry [DRAFT v0.1]/*.csv')

returned zero files silently while the directory plainly existed. Every derivation here uses

os.listdir. Positive control: the same prefix match against os.listdir returned the directory

immediately.

2. Heading suffix. An exact-match regex on ^## Key sites and spatial layout$ found the section

in 76 of 79 spine nodes and reported CH_55, CH_68 and CH_69 as having no site section at all. They

do — their heading carries a (§3b typed site rows) suffix. The corrected loose match raised the

arc-wide site total from 372 to 380 and the distinct-id count from 367 to 375. A

grep of each file's ## headings was the positive control that caught it.

3. Boolean field value. A protected check written as "not starting with no" counted every

protected false row as protected. The field's literal values are true and false; the

corrected check yields 47 of 88 slice and 196 of 380 arc-wide.

Two more caught in the v1.1 pass, recorded to the same standard:

4. The enemy-registry zero is REAL, and it was positive-controlled twice. A name search for

T0_Enemy_Registry|T0_Mob_Registry|T0_Faction_Registry|T0_Enemy_Archetype|T0_Threat_Table returns

1 occurrence repo-wide, and that occurrence is itself a statement of absence

(WS7_WIRING_BUILD_PLAN.md line 190: *"No FACTION registry exists yet"*). Control: the same search

for T0_Creature_Roster returns 986 occurrences across 232 files. Second control: every CSV

header across all 62 registry directories was regexed for

enemy|mob|faction|hostile|patrol|archetype|combatant|spawn|minion and the regex DID match real

columns (faction_affiliations, enemy_usable, spawn_rate, spawn_locus_type) — so the

machinery can match, and the absence of an enemy TABLE is a fact rather than a failed search. This

matters because a false zero here would have written "enemies are unsized" into the program when the

truth might have been "the author could not find the registry."

5. The ## Civilizational marks heading match was controlled against the file count. The block

parser reports 79 of 80 CH_*.md files carrying the block, totalling 380 bullets; the

positive control prints the file count seen (80) alongside the dictionary size (80), so a heading

variant that hid a whole node would show as a gap between the two numbers rather than as a quiet

undercount. This is the same defect class as trap 2 above, pre-empted rather than discovered.

8.3 Genuinely Josh's in v1.1 — TWO, and both are weapon-naming canon

All three of v1.0's questions were ruled at the twenty-fourth sitting (§5.5). v1.1's open set is

shorter and narrower, and both items are the same kind of thing: a NAME, against a count that is

already ruled. Neither is a scope question and neither blocks the slice.

1. D3-5 — per-region cultural weapon naming. The intent is ruled (CVD §12.5 / Pillar 10,

weapon-of-origin bonuses, regional combat identity) and a complete 72-row proposal exists with a

*Cultural instance / home* column on every row. Nothing has landed at the data layer: no cultural-name

column, and Pillar 10's named artifact (the Regional Combat Modifier table) *"has no registry"* so

Pillar 10 is *"data-unfalsifiable"*. Recommendation: ratify the proposal's §5.1-5.2 cultural

placements as a batch, which converts one review into 72 rows and unblocks the D1-24 multiplier.

Strongest objection: the proposal was drafted before the naming-register correction of the

twenty-third sitting (otherworld NAME register, no phrase-names, coinages legal), and a batch

ratification would carry any register drift in it into 72 rows at once — so the batch should be

re-read against the naming doctrine first, and that re-read is ours to run before the board reaches

him.

2. D3-6 — the 71 unrostered legendary weapons. The count of 72 is ruled canon in three independent

places; exactly one instance is rostered. Recommendation: roster them in weapon-registry order

as the region legs land, one legendary per weapon as its cultural placement is ruled, so items 1 and

2 resolve as one stream rather than two. Strongest objection: legendary NAMES are the highest-

visibility strings in the game and a 71-name batch is a lot of taste to spend in one sitting;

splitting them per leg costs 71 small decisions instead of one large one, which may be worse for

him and is the reason this is presented as a recommendation rather than applied.

A third item is Josh-ADJACENT and is being applied rather than flagged, recorded here so the

judgement is visible: enterable-interior density (D3-3). The divergence from GTA/RDR2 interior

density is already ruled DIVERGENT-BY-DESIGN, so the frame is his; the floor inside that frame is

execution, and the applied answer is story-bearing homes only. If a playthrough reads the settlements

as facades, that is exactly the backstop case the care doctrine reserves for him.

8.4 One PLAN DEFECT found, flagged loudly

**DESIGN_GAP_REGISTER.md gap #1 — the non-boss engagement/aggro spec — is the top-ranked gap in the

register, is classed MISSING with owner W-SPACE, and is NOT in the 30-rank window plan.** A search of

PRE_5090_BUILD_PLAN.md for aggro|engagement spec|threat table|leash returns one unrelated hit

("unleash"), and the ranked queue has no enemy-population item. Meanwhile **rank 17 is

"per-enemy weaknesses"** — an item that presupposes the enemy table gap #1 says does not exist. That is

a dangling dependency in the binding plan, and it is not the art program's to fix: it belongs to

whoever owns the ranked queue. Recorded here because the art program is the lane that discovered it, and

because D1-12 cannot be sized until it is resolved — every ordinary fight in the game currently has no

art denominator at all.

8.5 Sources cited in this document

Rulings: docs/PRE_5090_BUILD_PLAN.md (the ranked 30, SLICE RESCOPE lines 146-158, rank 5 line 70,

rank 11 line 88, rank 10 line 81) · docs/proposals/REALM_DESIGN_PROGRAM.md §0.1, §2.1, §2.2, §3.2,

§3.3, §3.5, §4.1, §6.3 · docs/pipeline_review/REALM_ANALYSIS_ART_PIPELINE_2026-07-27.md §1.1-1.6,

§2, §3.3 · docs/pipeline_review/tech_research/PIPE_ART_2026-07-29.md §1, §2, §5, §6 ·

docs/pipeline_review/tech_research/STACK_CONFLICT_ADJUDICATIONS_2026-07-29.md C-1, C-5, C-7, C-10,

C-12, C-13, C-14 · docs/pipeline_review/tech_research/PIPELINE_STACK_SYNTHESIS_2026-07-29.md §3.2,

§4 · docs/ASSET_DROPIN_CONTRACT.md §1, §2, §3, §7, items 6, 6-D, 7 ·

docs/COMBAT_PROGRAM_ADDENDUM.md §5, §7 · docs/spine/DECISIONS_PENDING_JOSH.md fourteenth sitting

lines 333-351 · docs/OPEN_BRIEFS_2026-07-28.md §1 · docs/DESIGN_GAP_REGISTER.md entry 4

amendment (adjudication 20), entries 94, 95, 97 · docs/ENGINE_OPTIMIZATION_DOCTRINE.md §5.4, D10 ·

docs/FACTORY_CONTRACT.md §3, §4, FR-040, FR-044 · docs/proposals/MUSIC_COMPOSITION_DOCTRINE.md

§4.0, §4.0.1, §4.0.2, §4.0.3, line 1427 · docs/NATURAL_VOICE_DOCTRINE.md §2, §4, §5 ·

docs/proposals/ENTITY_PERSONA_SYSTEM.md line 218 · docs/5090_SETUP_RUNBOOK.md stage map lines 120,

460-472, lanes R/P/G lines 1103-1120 · `_source/01_Tier_1_Foundation/T1_Build_Pipeline_Contracts

[ACTIVE v1.0].md` §2.5, §2.6, lines 283-295, 398, 402, 522 ·

_source/00_Tier_0_Master_Indices/T0_Schema_Dictionary [ACTIVE v1.3].md §1.13.

Registries read: T0_Region_Index, T0_Chapter_Index, T0_Boss_Encounter_Registry,

T0_Creature_Roster, T0_Character_Index, T0_Antagonist_Network_Registry, T0_Weapon_Registry,

T0_Familiar_Registry, T0_Ability_Tree_Registry, T0_Element_Effectiveness, T0_Flora_Registry,

T0_Mineral_Registry, T0_Gather_Node_Registry, T0_Festival_Registry, T0_Vehicle_Registry,

T0_Equipment_Registry, T0_Hollow_Codex, T0_Dungeon_Class_Reference, T0_Realm_Ruleset_Registry,

T0_Rarity_Grade, T0_Rune_Registry, T0_School_Registry, T0_Language_Script_Registry,

T0_Inscription_Spine, T0_Scene_Spec_Registry, T0_Vril_Site_Registry, T0_Dwelling_Registry,

T0_Environment_Grammar_Registry, T0_Motif_Registry, T0_Minigame_Registry, T0_Trade_Registry,

T0_Questline_Index, T0_Theme_Registry, T0_Voice_Registry, T0_SFX_Registry,

T0_Composure_Routing. Spine: all 79 docs/spine/CH_*.md nodes, sections

## Key sites and spatial layout, ## Asset anchors and ## Civilizational marks.

Added for v1.1's density model: docs/spine/DECISIONS_PENDING_JOSH.md twenty-fourth sitting (the

four rulings this version folds) · docs/PRE_5090_BUILD_PLAN_VOL2.md §A.1 (the ruled density curve +

the Ch 2-5 band + the RESCOPE BLOCKER) and §11.5.5 (QT-17/18/19) and §E (TG-9 / TG-12) ·

_source/02_Tier_2_Region_Pages/*.md — all 12 pages, sections ## Zone Catalog, ### Section 12,

### Section 14 · _source/03_Tier_3_Characters/T3_Creatures_Tameable [ACTIVE v1.0] §0.1, §1.1 (the

420-plus ruling) · _source/03_Tier_3_Characters/T3_Core_Characters [ACTIVE v1.0] §3.2 (Ntala's

clothing law) · docs/RUNTIME_GENERATIVE_LAYER.md §A.1 (the 40:6 crowd-bucket ratio) ·

docs/proposals/ENTITY_PERSONA_SYSTEM.md §2.2, §2.3, §4.2, §5 · docs/DESIGN_GAP_REGISTER.md gap #1

(lines 33, 51-66), line 214 (enterable interior density, DIVERGENT-BY-DESIGN), gap #13 ·

docs/proposals/DEEP_BOOK_PROCESSING_CONTRACT.md §2.5b + docs/proposals/EXR_RECORD_SCHEMA_v0.2.md

§7 + harness/enrich.py civ_marks_hints() (the civilizational_marks lane) ·

docs/proposals/SIGNIFICANCE_LENSES.md lens E2 · docs/proposals/WEAPON_SYSTEM_PROPOSAL.md §5.1-5.2 ·

docs/FOUNDATION_ENHANCEMENT_ROADMAP.md lines 304-309 (Pillar 10 data-unfalsifiable) ·

docs/COMBAT_ENCOUNTER_SYSTEM.md lines 68, 85, 446, 448 · docs/spine/COMPANION_CAST_BRIEF.md (the

ratified roster) + docs/spine/companion_cast_designs/COMPANION_MECHANICS_CONTRACT.md ·

docs/proposals/QUEST_SEED_HOUSING_LEDGER.md · docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md

lines 167, 190 · T1_Combat_System_Spec [ACTIVE v1.0] §9 (encounter categories, no enemy classes).

8.6 When this lands

Add a docs/DOC_MAP.md row — an artifact is not done until it is listed there — and name its

consumer, which is the factory's per-leg art step, the rank-5 schema pass, and (new in v1.1) the

board-generation pipeline that reads density_model.csv. Its first commit creates docs/art_boards/

and docs/art_bibles/, neither of which exists today, plus docs/art_boards/MANIFEST.csv per §9.

---

9. MACHINE-CONSUMABLE DELIVERABLES — AND THE BOARD MANIFEST SCHEMA

Josh, verbatim and standing: *"Make sure everything you're doing can be consumed autonomously by the

pipelines."* A density model that lives only in prose is a document the factory cannot act on, and an

approval that lives only on a web page is a decision a human has to retype. Three deliverables answer

that, and the third is a PROPOSAL rather than a mint.

9.1 The density model as data

docs/concept_art/density_model.csv43 rows × 14 columns (measured on the live header at

landing; the 15 this line carried was a miscount, the column list below is the correct fourteen),

and the artifact the board-generation pipeline reads rather than parsing §6:

`class_id · class_name · art_unit · formula · formula_inputs · ruled_source · slice_floor ·

slice_target · fullgame_floor · fullgame_target · fullgame_basis · missing_inputs ·

cheap_or_expensive · tier`

harness/concept_art/emit_density_model.py derives density_model.json from it (adding the ruled

slice denominator and the recomputed totals) and carries a --check mode that exits 3 if any row is missing a required

field or carries a non-integer count — the gate SHAPE the rest of the harness uses, so this artifact can

join run_gates.py without a new pattern. **Every total in §6.2 and §7 is emitted by that script, not

typed**, which is the only way a 43-row table stays arithmetically honest across edits.

Two fields exist specifically so the pipeline can route without reading prose: fullgame_basis

(counted / projected … / no countable home / unruled multiplier) lets a scheduler refuse to

budget against a projection, and cheap_or_expensive lets it route the 15 cheap classes to

parametric variant sweeps and the 28 expensive ones to authored boards. missing_inputs carries the

literal token JOSH on exactly the two rows that are his, so the brief queue is a query.

9.2 The derive scripts as harness citizens

derive6.py resolves the repo by walking up from its own location for registries/ +

CLAUDE.md, then falling back to $HUMANITY_REPO, then the cwd, with --repo as an explicit

override. No scratchpad path appears in any logic, so dropping the file into harness/ makes the

walk-up win and nothing else is consulted. It is read-only against the repo and writes only to an

explicit --emit-dir. It also carries the repo's own hard-won discipline in code rather than in a

comment: registry loading is os.listdir-only with an asserting prefix match (glob reads the

[DRAFT v0.1] in directory names as a character class and returns zero silently), and the

civilizational-marks parser prints its file count beside its result count as a standing positive

control.

RESOLVED at landing (2026-07-29), as this section recommended: derive.py through derive5.py

(v1.0's scripts) hardcoded C:\dev\humanity-forgotten\registries as a module constant — correct and

reproducible but NOT harness-portable. All eight scripts now resolve the tree through one shared

harness/concept_art/_repo.py, including derive6.py, whose inline copy of the rule was replaced

so the rule has exactly one home. The landing ran all eight before and after the move and asserted

their output identical, which is the verification this paragraph asked for. Bringing them up to the §9.2 convention is a

mechanical edit and is deliberately not done in this pass, because touching five working derivation

scripts in the same pass that re-publishes their outputs would make an arithmetic regression

indistinguishable from a path change. Recommended as its own commit, verified by re-running all six

scripts and diffing the counts against §7.

9.3 PROPOSED — the BOARD MANIFEST schema

This is a proposal, not a mint. §2.5 already rules the home: a manifest, not a

T0_Concept_Art_Registry, because concept art is *"upstream reference substrate… not canonical content

itself"* and PIPE_ART rules *"Nothing binary enters the canon repo; promoted plates enter as manifest

rows + hashes only."* v1.1 adds the schema, because Josh's board-medium ruling makes it load-bearing in

a way it was not before: **approvals now happen on a web page, and they must land in the repo without a

human transcription step.**

Two tables, because a board and a plate are different grains and conflating them is what makes an

asset manifest rot.

docs/art_boards/MANIFEST.csv — one row per BOARD.

columntypewhy
board_idBRD_####stable id; the web page's URL slug derives from it
density_class_idFK → density_model.csv:class_idthe join that makes the density model executable — a board knows which class it is discharging
subject_canon_idFK → the owning registry rowthe region, boss, weapon subclass or law being boarded
board_shapeenum place_3panel / being_2panel / object_2panel / language / frame_1panel / realm_4panel§2.2's class-specific shapes as data
panel_count, options_per_panelint3 options per panel per the charter; recorded so a malformed board fails a shape check
care_tier, generation_class, generation_tier, decay_stageenumsthe §2.3 badges, carried at board grain
citation_refsmulti-value FK → T0_Source_Material_Registryan empty value disqualifies the board from Panel A; this is the field that makes cited-or-cut mechanical
critic_verdictsmulti-value `<critic>:<GO\GO_WITH_FIXES\NO_GO>`the four §2.6 adversarial critics; a NO_GO cannot publish
published_url, is_privatestring, boolthe private-web-page ruling as data; is_private starts TRUE and only the marketing pass may flip it
marketing_eligiblebool, COMPUTEDderived from the licence classes of the board's plates, never hand-asserted — §4.2a. AMENDED at landing (2026-08-02): v1.1 declared this COMPUTED but specified no computation and no check, so the cell was in fact typed by hand and read_boards.py only read it through truthy(). The cell stays on the row — the marketing set has to remain a query over one table — but it is a CACHE of a derivation, and T-MARKETING-COMPUTED fails any disagreement between the cell and the value computed from the board's plate rows. A board computes TRUE only if EVERY plate carries a rights value that clears marketing reuse (own_capture, public_domain, generated_local); museum_open_access is excluded by §4.2a's own "a museum's open-access grant is not automatically a marketing grant", and licensed clears only within its terms
approval_stateenum draft / critics_running / published / awaiting_pick / picked / regenerating / supersededthe review state machine
regeneration_countintthe ruled 90% cadence gate is unmeasurable without this — §2.6
pick_panel_a, pick_panel_b, pick_cards_coption idsthe pick line, structured
pick_amendment_a, pick_amendment_bfree textthe *"A2, but the light comes from under the water"* lane, preserved verbatim
picked_at, picked_bytimestamp, stringprovenance; picked_by is Josh or the director under the §2.6 tiering
art_bible_refpathwhere the ratified reading landed (docs/art_bibles/<subject>.md)
writeback_statusenum pending / applied / failedwhether the pick reached the owning registry row's art hooks — the field that makes a dropped apply visible instead of silent

docs/art_boards/PLATES.csv — one row per PLATE. plate_id · board_id FK · panel (A/B) ·

option_index · plate_role (silhouette / palette / detail / hero / law-in-action) · rights_value

(the ruled six-value vocabulary) · image_use_class · generation_licence_ref (C-12) ·

generation_prompt_hash · model_id · weights_revision · style_lora_hash · asset_path (on

E:\art\boards\…, never in the repo) · sha256 · generation_status (the ruled five-state machine).

image_use_class — ADDED at landing (2026-08-02), and it closes a hole this schema shipped with.

REALM_DESIGN_PROGRAM §3.4 rules the licensed rights value as *"licensed (with the licence

identified)"*, and the row above gave it nowhere to be identified: generation_licence_ref is the

C-12 model licence and reads n_a_lane_r on every Lane-R plate, because no model ran. The first

board shipped two Panel A plates routed licensed with no licence anywhere — one of them citing an

owned magazine run as though ownership were a licence — and every tooth on the board passed them.

image_use_class is the IMAGE-side permission, built as the image-lane analog of the book-substrate

lane's use_class field that §3.4 names as *"the precedent to copy rather than invent"*: a per-row

closed enum of uppercase tokens recording what may legally be done, checked by a gate. Grammar is

TOKEN or TOKEN:<identifier> (the shape critic_verdicts already uses). Vocabulary: OWN-CAPTURE

· PUBLIC-DOMAIN · OPEN-ACCESS:<institution> · LICENSED:<licence> · REFERENCE (carried over

verbatim from the book lane — held for reference, never reproduced) · GENERATED-CLEAN-WEIGHTS ·

PREVIZ-ONLY. Gated by T-IMAGE-LICENCE.

How approval flows back with no human in the loop. The web board's pick action writes

pick_panel_a / pick_panel_b / pick_cards_c / picked_at and flips approval_state to picked.

A deterministic applier then reads the row, resolves density_class_id and subject_canon_id, and

populates the owning registry's art hooks — the five realm hooks (palette_law, silhouette_law,

impossible_architecture_budget, signature_phenomenon, concept_choice_slots), the four rarity hooks,

or the rank-5 asset_concept / morphology / mesh_tags fields — then sets writeback_status. Josh

touches the pick line and nothing else, which is what §4.4 already ruled; the difference is that his

pick now becomes registry data by machine rather than by memory.

Its gate is the one §4.5 already names. harness/read_boards.py — deterministic, PRESENCE and

SHAPE only, never content, with must-fire and must-not-fire fixtures and exit-3. v1.1 adds the specific

teeth the schema makes possible: a picked board with writeback_status: pending older than one commit

FAILS; a board whose citation_refs is empty and whose board_shape includes Panel A FAILS; a plate

whose rights_value is previz_only FAILS on any panel of any board (v1.1 wrote this as

conditional on marketing_eligible: true, which made it inert on every board in the repo — §4.2a rules

the opposite outright, that *every board is marketing-destined from birth*, so the condition was a hole

and is AMENDED at landing 2026-08-02 to unconditional: Panel A by T-PANELA-PREVIZ, every other

panel by T-MARKETING); a published board carrying a NO_GO critic verdict FAILS; a plate routed

licensed whose image_use_class is empty or names a class without naming the grant FAILS

(T-IMAGE-LICENCE); an asserted marketing_eligible that disagrees with the value computed from the

plate rows FAILS (T-MARKETING-COMPUTED). A tooth without a failing fixture is not armed, so each

of those ships with its fixture or does not ship.

Why two tables and not one. A single flat table would carry the board's approval state on every

plate row, so a 15-plate board would hold fifteen copies of one pick — the exact duplicate-header and

short-row defect class the repo has already been bitten by, where a widened CSV passes every gate and

misreads silently in DictReader. Splitting board from plate keeps the approval single-sourced.

The alternative, stated so the proposal is a choice. Approvals could land as commits to the board's

own markdown, with the manifest generated from those commits. That is more git-native and needs no

write-back applier — but it puts a human between the web page and the repo, which is precisely what the

directive says to remove, and it makes the 90% approval-rate gate a log-scrape instead of a query. The

recommendation is the manifest; the markdown remains the human-readable mirror, generated from it.

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