Files
settled-reach/docs/diagrams/data-flow/wiki-generator-flow.svg
T
jpmschweitzerandClaude Opus 5 6949f800dc docs(governance): D-262 — the wiki generator flow has one canonical map
The relationship between wiki/, the generators, systems.db and the runtime is
a directed graph with two edges running opposite to the obvious direction and
one running backwards into its own producer. Prose renders that badly: every
document that has described it states a single ownership direction and is
therefore wrong about part of the tree. D-262 makes the diagram the source of
truth and points CLAUDE.md, Skill(wiki), project-structure.md and
wiki/GOVERNANCE.md at it.

The correction that matters most: body pages were described everywhere as
machine-owned and reverted on sync. They are not. scaffold_bodies.py writes
one once and never overwrites it, and import_economics then reads that
frontmatter directly as input — so a hand-edit is not reverted, it is obeyed,
and silently changes world generation. Worse than being overwritten, and the
actual reason GOVERNANCE.md forbids the edit.

New: tooling/check-dataflow-graph.py, wired into the Makefile and the pre-push
hook. It asserts every repo path named in a hand-authored diagram still
resolves — and its docstring states plainly what it cannot do: verify that an
edge still MEANS what it says. If wiki_sync.py stopped writing body pages
tomorrow, every path would still exist and the check would still pass. Edge
semantics stay a human check against the tool's source, so nobody reads a green
gate as a verified map.

Verified by breaking it: pointing one label at a moved path fails with exit 1
naming that path; restoring it passes. Building the checker also caught two
real vaguenesses in the diagram — "GJ-*/index.md" and "bodies/{id}/index.md"
were written without their wiki/star-systems/ prefix, which is precisely the
ambiguity this map exists to remove. Generated star-map .d2 files are excluded
by name; their correctness belongs to their generator under D-223.

Also files Q-124 + T-1246 (tooling): whether the 123 Python files under
tooling/ should become one Rust CLI of pql's calibre. The friction is real and
mostly not about the language — the permission gate prefix-matches whole
command strings and a blanket Bash(python3 *) grant is forbidden, so each tool
prompts near-individually, while a single binary is one allowlist entry. The
record requires pricing the cheap alternative (a Python dispatcher entrypoint)
before recommending Rust, and flags the hard constraint: import_economics is
stamped by source SHA, so any port must keep that contract intact through the
transition rather than disabled during it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 01:56:12 +02:00

113 lines
44 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="v0.8.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 2138 2905"><svg class="d2-287329431 d2-svg" width="2138" height="2905" viewBox="-19 -19 2138 2905"><rect x="-19.000000" y="-19.000000" width="2138.000000" height="2905.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-287329431 .text-bold {
font-family: "d2-287329431-font-bold";
}
@font-face {
font-family: d2-287329431-font-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-287329431 .text-italic {
font-family: "d2-287329431-font-italic";
}
@font-face {
font-family: d2-287329431-font-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-287329431 .fill-N1{fill:#0A0F25;}
.d2-287329431 .fill-N2{fill:#676C7E;}
.d2-287329431 .fill-N3{fill:#9499AB;}
.d2-287329431 .fill-N4{fill:#CFD2DD;}
.d2-287329431 .fill-N5{fill:#DEE1EB;}
.d2-287329431 .fill-N6{fill:#EEF1F8;}
.d2-287329431 .fill-N7{fill:#FFFFFF;}
.d2-287329431 .fill-B1{fill:#0D32B2;}
.d2-287329431 .fill-B2{fill:#0D32B2;}
.d2-287329431 .fill-B3{fill:#E3E9FD;}
.d2-287329431 .fill-B4{fill:#E3E9FD;}
.d2-287329431 .fill-B5{fill:#EDF0FD;}
.d2-287329431 .fill-B6{fill:#F7F8FE;}
.d2-287329431 .fill-AA2{fill:#4A6FF3;}
.d2-287329431 .fill-AA4{fill:#EDF0FD;}
.d2-287329431 .fill-AA5{fill:#F7F8FE;}
.d2-287329431 .fill-AB4{fill:#EDF0FD;}
.d2-287329431 .fill-AB5{fill:#F7F8FE;}
.d2-287329431 .stroke-N1{stroke:#0A0F25;}
.d2-287329431 .stroke-N2{stroke:#676C7E;}
.d2-287329431 .stroke-N3{stroke:#9499AB;}
.d2-287329431 .stroke-N4{stroke:#CFD2DD;}
.d2-287329431 .stroke-N5{stroke:#DEE1EB;}
.d2-287329431 .stroke-N6{stroke:#EEF1F8;}
.d2-287329431 .stroke-N7{stroke:#FFFFFF;}
.d2-287329431 .stroke-B1{stroke:#0D32B2;}
.d2-287329431 .stroke-B2{stroke:#0D32B2;}
.d2-287329431 .stroke-B3{stroke:#E3E9FD;}
.d2-287329431 .stroke-B4{stroke:#E3E9FD;}
.d2-287329431 .stroke-B5{stroke:#EDF0FD;}
.d2-287329431 .stroke-B6{stroke:#F7F8FE;}
.d2-287329431 .stroke-AA2{stroke:#4A6FF3;}
.d2-287329431 .stroke-AA4{stroke:#EDF0FD;}
.d2-287329431 .stroke-AA5{stroke:#F7F8FE;}
.d2-287329431 .stroke-AB4{stroke:#EDF0FD;}
.d2-287329431 .stroke-AB5{stroke:#F7F8FE;}
.d2-287329431 .background-color-N1{background-color:#0A0F25;}
.d2-287329431 .background-color-N2{background-color:#676C7E;}
.d2-287329431 .background-color-N3{background-color:#9499AB;}
.d2-287329431 .background-color-N4{background-color:#CFD2DD;}
.d2-287329431 .background-color-N5{background-color:#DEE1EB;}
.d2-287329431 .background-color-N6{background-color:#EEF1F8;}
.d2-287329431 .background-color-N7{background-color:#FFFFFF;}
.d2-287329431 .background-color-B1{background-color:#0D32B2;}
.d2-287329431 .background-color-B2{background-color:#0D32B2;}
.d2-287329431 .background-color-B3{background-color:#E3E9FD;}
.d2-287329431 .background-color-B4{background-color:#E3E9FD;}
.d2-287329431 .background-color-B5{background-color:#EDF0FD;}
.d2-287329431 .background-color-B6{background-color:#F7F8FE;}
.d2-287329431 .background-color-AA2{background-color:#4A6FF3;}
.d2-287329431 .background-color-AA4{background-color:#EDF0FD;}
.d2-287329431 .background-color-AA5{background-color:#F7F8FE;}
.d2-287329431 .background-color-AB4{background-color:#EDF0FD;}
.d2-287329431 .background-color-AB5{background-color:#F7F8FE;}
.d2-287329431 .color-N1{color:#0A0F25;}
.d2-287329431 .color-N2{color:#676C7E;}
.d2-287329431 .color-N3{color:#9499AB;}
.d2-287329431 .color-N4{color:#CFD2DD;}
.d2-287329431 .color-N5{color:#DEE1EB;}
.d2-287329431 .color-N6{color:#EEF1F8;}
.d2-287329431 .color-N7{color:#FFFFFF;}
.d2-287329431 .color-B1{color:#0D32B2;}
.d2-287329431 .color-B2{color:#0D32B2;}
.d2-287329431 .color-B3{color:#E3E9FD;}
.d2-287329431 .color-B4{color:#E3E9FD;}
.d2-287329431 .color-B5{color:#EDF0FD;}
.d2-287329431 .color-B6{color:#F7F8FE;}
.d2-287329431 .color-AA2{color:#4A6FF3;}
.d2-287329431 .color-AA4{color:#EDF0FD;}
.d2-287329431 .color-AA5{color:#F7F8FE;}
.d2-287329431 .color-AB4{color:#EDF0FD;}
.d2-287329431 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-287329431);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-287329431);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-287329431);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-287329431);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-287329431);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-287329431);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-287329431);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-287329431);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="ZWNvbg== authored"><g class="shape" ><rect x="1483.000000" y="1630.000000" width="253.000000" height="82.000000" rx="4.000000" stroke="#8fd9ae" fill="#1f6f43" style="stroke-width:2;" /></g><text x="1609.500000" y="1668.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1609.500000" dy="0.000000">wiki/economics/</tspan><tspan x="1609.500000" dy="18.500000">TOMLs + 37 commodity pages</tspan></text></g><g class="Y29ycA== authored"><g class="shape" ><rect x="1132.000000" y="1630.000000" width="212.000000" height="82.000000" rx="4.000000" stroke="#8fd9ae" fill="#1f6f43" style="stroke-width:2;" /></g><text x="1238.000000" y="1668.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1238.000000" dy="0.000000">wiki/corporations/*.md</tspan><tspan x="1238.000000" dy="18.500000">156 pages</tspan></text></g><g class="Z3R0cg== authored"><g class="shape" ><rect x="890.000000" y="1478.000000" width="192.000000" height="82.000000" rx="4.000000" stroke="#8fd9ae" fill="#1f6f43" style="stroke-width:2;" /></g><text x="986.000000" y="1516.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="986.000000" dy="0.000000">gttr*.md</tspan><tspan x="986.000000" dy="18.500000">Drifter&#39;s Guide prose</tspan></text></g><g class="cHJvc2U= authored"><g class="shape" ><rect x="737.000000" y="694.000000" width="241.000000" height="66.000000" rx="4.000000" stroke="#8fd9ae" fill="#1f6f43" style="stroke-width:2;" /></g><text x="857.500000" y="732.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">system-page prose sections</text></g><g class="Y2xp authored"><g class="shape" ><rect x="616.000000" y="1630.000000" width="225.000000" height="82.000000" rx="4.000000" stroke="#8fd9ae" fill="#1f6f43" style="stroke-width:2;" /></g><text x="728.500000" y="1668.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="728.500000" dy="0.000000">tooling/atlas add-body</tspan><tspan x="728.500000" dy="18.500000">THE bodies catalog origin</tspan></text></g><g class="ZWNvbmltcA== tool"><g class="shape" ><path d="M 1327 1792 L 1268 1838 L 1327 1885 L 1446 1885 L 1505 1838 L 1446 1792 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="1386.500000" y="1836.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1386.500000" dy="0.000000">import_economics</tspan><tspan x="1386.500000" dy="18.500000">+ generate_brands</tspan></text></g><g class="c3luYw== tool"><g class="shape" ><path d="M 444 2363 L 399 2397 L 444 2432 L 533 2432 L 578 2397 L 533 2363 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="488.500000" y="2403.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">wiki_sync.py</text></g><g class="c2NhZg== tool"><g class="shape" ><path d="M 1336 1224 L 1259 1270 L 1336 1317 L 1490 1317 L 1567 1270 L 1490 1224 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="1413.000000" y="1268.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1413.000000" dy="0.000000">scaffold_bodies.py</tspan><tspan x="1413.000000" dy="18.500000">+ body_definition_parser</tspan></text></g><g class="aG9vaw== tool"><g class="shape" ><path d="M 924 1636 L 861 1670 L 924 1705 L 1049 1705 L 1112 1670 L 1049 1636 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="986.500000" y="1676.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">populate_gttr_hook</text></g><g class="dHJlZg== tool"><g class="shape" ><path d="M 1839 1643 L 1756 1677 L 1839 1712 L 2005 1712 L 2088 1677 L 2005 1643 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="1922.000000" y="1683.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">populate_terrain_reference</text></g><g class="aG1hcA== tool"><g class="shape" ><path d="M 1360 2363 L 1297 2409 L 1360 2456 L 1485 2456 L 1548 2409 L 1485 2363 Z" stroke="#9dc0f0" fill="#2b4c7e" style="stroke-width:2;" /></g><text x="1422.500000" y="2407.000000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1422.500000" dy="0.000000">import_heightmaps</tspan><tspan x="1422.500000" dy="18.500000">+ planet_simulation</tspan></text></g><g class="ZGI= store"><g class="shape" ><path d="M 1105 2089 C 1105 2065 1177 2065 1185 2065 C 1193 2065 1265 2065 1265 2089 V 2159 C 1265 2183 1193 2183 1185 2183 C 1177 2183 1105 2183 1105 2159 V 2089 Z" stroke="#e0b070" fill="#7a4b12" style="stroke-width:2;" /><path d="M 1105 2089 C 1105 2113 1177 2113 1185 2113 C 1193 2113 1265 2113 1265 2089" stroke="#e0b070" fill="#7a4b12" style="stroke-width:2;" /></g><text x="1185.000000" y="2141.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">systems.db</text></g><g class="c21hcA== store"><g class="shape" ><path d="M 294 2089 C 294 2065 359 2065 366 2065 C 373 2065 438 2065 438 2089 V 2159 C 438 2183 373 2183 366 2183 C 359 2183 294 2183 294 2159 V 2089 Z" stroke="#e0b070" fill="#7a4b12" style="stroke-width:2;" /><path d="M 294 2089 C 294 2113 359 2113 366 2113 C 373 2113 438 2113 438 2089" stroke="#e0b070" fill="#7a4b12" style="stroke-width:2;" /></g><text x="366.000000" y="2141.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">star-map.json</text></g><g class="c3lz generated"><g class="shape" ><rect x="717.000000" y="921.000000" width="281.000000" height="82.000000" rx="4.000000" stroke="#9a9aa4" fill="#3a3a42" style="stroke-width:2;" /></g><text x="857.500000" y="959.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="857.500000" dy="0.000000">wiki/star-systems/GJ-*/index.md</tspan><tspan x="857.500000" dy="18.500000">READ-ONLY blocks</tspan></text></g><g class="Ym9keQ== generated"><g class="shape" ><rect x="1231.000000" y="1478.000000" width="363.000000" height="82.000000" rx="4.000000" stroke="#9a9aa4" fill="#3a3a42" style="stroke-width:2;" /></g><text x="1412.500000" y="1516.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1412.500000" dy="0.000000">wiki/star-systems/GJ-*/bodies/{id}/index.md</tspan><tspan x="1412.500000" dy="18.500000">frontmatter = body definition</tspan></text></g><g class="YXNzZXRz generated"><g class="shape" ><rect x="1505.000000" y="2536.000000" width="253.000000" height="82.000000" rx="4.000000" stroke="#9a9aa4" fill="#3a3a42" style="stroke-width:2;" /></g><text x="1631.500000" y="2574.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1631.500000" dy="0.000000">heightmap · reliefmap · globe</tspan><tspan x="1631.500000" dy="18.500000">terrain.npz · markers.json</tspan></text></g><g class="YnJhbmRz generated"><g class="shape" ><rect x="1476.000000" y="2065.000000" width="214.000000" height="66.000000" rx="4.000000" stroke="#9a9aa4" fill="#3a3a42" style="stroke-width:2;" /></g><text x="1583.000000" y="2103.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">generated_brands.toml</text></g><g class="Y2FzY2FkZQ== runtime"><g class="shape" ><rect x="1452.000000" y="2789.000000" width="150.000000" height="66.000000" rx="4.000000" stroke="#d3a8e6" fill="#5c2d6e" style="stroke-width:2;" /></g><text x="1527.000000" y="2827.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">server cascade</text></g><g class="Y2xpZW50 runtime"><g class="shape" ><rect x="1081.000000" y="2536.000000" width="132.000000" height="66.000000" rx="4.000000" stroke="#d3a8e6" fill="#5c2d6e" style="stroke-width:2;" /></g><text x="1147.000000" y="2574.500000" fill="#ffffff" class="text-bold" style="text-anchor:middle;font-size:16px">Godot client</text></g><g class="bGVnZW5k"><g class="shape" ><rect x="12.000000" y="12.000000" width="705.000000" height="748.000000" rx="4.000000" stroke="#9a9aa4" fill="#161619" style="stroke-width:2;" /></g><text x="364.500000" y="58.500000" fill="#dcdce4" class="text-bold" style="text-anchor:middle;font-size:24px"><tspan x="364.500000" dy="0.000000">READING THIS</tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379">COLOUR = kind. green authored · blue generator · amber store</tspan><tspan x="364.500000" dy="24.241379"> grey generated-into-wiki/ · purple runtime</tspan><tspan x="364.500000" dy="24.241379">LINE = when. solid build-time · green runtime</tspan><tspan x="364.500000" dy="24.241379"> dashed one-time/bootstrap · RED the trap</tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379">TWO PATHS RUN BOTH WAYS</tspan><tspan x="364.500000" dy="24.241379">wiki_sync.py renders DB→wiki (generate_wiki(), routine) AND</tspan><tspan x="364.500000" dy="24.241379">parses wiki→DB (import_from_wiki(), bootstrap only).</tspan><tspan x="364.500000" dy="24.241379">Not a drawing error.</tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379">THE RED EDGE IS THE EXPENSIVE ONE</tspan><tspan x="364.500000" dy="24.241379">scaffold_bodies.py writes a body page once and NEVER</tspan><tspan x="364.500000" dy="24.241379">overwrites it; the generator then reads that frontmatter</tspan><tspan x="364.500000" dy="24.241379">directly. A hand-edit there is not reverted — it is OBEYED,</tspan><tspan x="364.500000" dy="24.241379">and silently changes world generation. Hence the</tspan><tspan x="364.500000" dy="24.241379">GOVERNANCE.md prohibition.</tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379">TWO ROUTES INTO THE GAME</tspan><tspan x="364.500000" dy="24.241379">systems.db ships with the build; the per-body PNGs are read</tspan><tspan x="364.500000" dy="24.241379">at RUNTIME via bodies.terrain_reference, never baked in.</tspan><tspan x="364.500000" dy="24.241379"> </tspan><tspan x="364.500000" dy="24.241379">FIELD RESOLUTION IN A BODY PAGE (body_definition_parser)</tspan><tspan x="364.500000" dy="24.241379">override &gt; direct read &gt; derived &gt; inferred &gt; seeded random.</tspan><tspan x="364.500000" dy="24.241379">Continuous fields vary because they fall to the last tier;</tspan><tspan x="364.500000" dy="24.241379">categorical ones are concentrated because they come from</tspan><tspan x="364.500000" dy="24.241379">the bodies table.</tspan></text></g><g class="KGVjb24gLSZndDsgZWNvbmltcClbMF0="><marker id="mk-d2-287329431-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 1609.750000 1714.000000 L 1609.750000 1742.000000 S 1609.750000 1752.000000 1599.750000 1752.000000 L 1455.791016 1752.000000 S 1445.791016 1752.000000 1445.843261 1761.999864 L 1445.979102 1788.000055" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KGNvcnAgLSZndDsgZWNvbmltcClbMF0="><path d="M 1327.283740 1713.999987 L 1327.014551 1788.000026" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KGd0dHIgLSZndDsgaG9vaylbMF0="><path d="M 986.756452 1561.499990 L 986.987097 1633.000021" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KGNsaSAtJmd0OyBkYilbMF0="><path d="M 728.750000 1714.000000 L 728.750000 1965.000000 S 728.750000 1975.000000 738.750000 1975.000000 L 1127.375000 1975.000000 S 1137.375000 1975.000000 1137.335107 1984.999920 L 1137.015957 2065.000032" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="849.000000" y="1981.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">catalog</text></g><g class="KGVjb25pbXAgLSZndDsgZGIpWzBd"><path d="M 1347.002051 1886.999999 L 1347.030762 1915.000005 S 1347.041016 1925.000000 1337.041016 1925.000000 L 1211.375000 1925.000000 S 1201.375000 1925.000000 1201.348214 1934.999964 L 1201.010714 2061.000014" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KGVjb25pbXAgLSZndDsgYnJhbmRzKVswXQ=="><path d="M 1426.000586 1887.000000 L 1426.038086 2015.000000 S 1426.041016 2025.000000 1436.041016 2025.000000 L 1573.791016 2025.000000 S 1583.791016 2025.000000 1583.791016 2035.000000 L 1583.791016 2061.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KGhvb2sgLSZndDsgZGIpWzBd"><path d="M 986.997717 1707.999999 L 986.761416 1915.000007 S 986.750000 1925.000000 996.750000 1925.000000 L 1159.375000 1925.000000 S 1169.375000 1925.000000 1169.348214 1934.999964 L 1169.010714 2061.000014" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="1038.500000" y="1931.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">gttr_hook</text></g><g class="KGRiIC0mZ3Q7IHN5bmMpWzBd"><path d="M 1137.007979 2180.999984 L 1137.335107 2263.000080 S 1137.375000 2273.000000 1127.375000 2273.000000 L 552.349976 2273.000000 S 542.349976 2273.000000 542.313896 2282.999935 L 542.014432 2366.000026" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KHNtYXAgLSZndDsgc3luYylbMF0="><path d="M 366.012500 2184.999961 L 366.187501 2213.000195 S 366.250000 2223.000000 376.250000 2223.000000 L 424.950012 2223.000000 S 434.950012 2223.000000 434.953413 2232.999999 L 434.998640 2366.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KHN5bmMgLSZndDsgc3lzKVswXQ=="><path d="M 506.999291 2361.000000 L 506.553531 1102.999999 S 506.549988 1093.000000 516.549988 1093.000000 L 847.500000 1093.000000 S 857.500000 1093.000000 857.500000 1083.000000 L 857.500000 1007.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="506.500000" y="1513.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">renders</text></g><g class="KHByb3NlIC0mZ3Q7IHN5cylbMF0="><path d="M 857.500000 762.000000 L 857.500000 917.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="857.500000" y="846.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">preserved</text></g><g class="KHN5cyAtJmd0OyBzY2FmKVswXQ=="><path d="M 927.750000 1005.000000 L 927.750000 1033.000000 S 927.750000 1043.000000 937.750000 1043.000000 L 1403.250000 1043.000000 S 1413.250000 1043.000000 1413.236188 1052.999990 L 1413.005525 1220.000004" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="1241.500000" y="1049.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">bodies table</text></g><g class="KHNjYWYgLSZndDsgYm9keSlbMF0="><path d="M 1413.000000 1319.000000 L 1413.000000 1474.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="1413.000000" y="1403.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">writes ONCE</text></g><g class="KHN5cyAtJmd0OyBzeW5jKVswXQ== once"><marker id="mk-d2-287329431-3329488263" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#9a9aa4" class="connection" stroke-width="2" /> </marker><path d="M 787.250000 1005.000000 L 787.250000 1033.000000 S 787.250000 1043.000000 777.250000 1043.000000 L 488.250000 1043.000000 S 478.250000 1043.000000 478.248106 1053.000000 L 478.000758 2359.000000" stroke="#9a9aa4" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" marker-end="url(#mk-d2-287329431-3329488263)" mask="url(#d2-287329431)" /><text x="478.500000" y="1534.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">parses (bootstrap)</text></g><g class="KGJvZHkgLSZndDsgZWNvbmltcClbMF0= trap"><marker id="mk-d2-287329431-1094423196" markerWidth="13.000000" markerHeight="16.000000" refX="8.500000" refY="8.000000" viewBox="0.000000 0.000000 13.000000 16.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 13.000000,8.000000 0.000000,16.000000" fill="#c0392b" class="connection" stroke-width="3" /> </marker><path d="M 1386.545962 1562.499995 L 1386.989119 1786.500011" stroke="#c0392b" fill="none" class="connection" style="stroke-width:3;" marker-end="url(#mk-d2-287329431-1094423196)" mask="url(#d2-287329431)" /><text x="1387.000000" y="1682.000000" fill="#c0392b" class="text-bold" style="text-anchor:middle;font-size:16px">read as INPUT</text></g><g class="KGRiIC0mZ3Q7IGhtYXApWzBd once"><path d="M 1233.017045 2180.999927 L 1233.289776 2213.000363 S 1233.375000 2223.000000 1243.375000 2223.000000 L 1412.666016 2223.000000 S 1422.666016 2223.000000 1422.689872 2232.999972 L 1422.990458 2359.000011" stroke="#9a9aa4" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" marker-end="url(#mk-d2-287329431-3329488263)" mask="url(#d2-287329431)" /></g><g class="KGhtYXAgLSZndDsgYXNzZXRzKVswXQ== once"><path d="M 1422.983301 2457.999930 L 1422.749509 2486.000349 S 1422.666016 2496.000000 1432.666016 2496.000000 L 1579.625000 2496.000000 S 1589.625000 2496.000000 1589.625000 2506.000000 L 1589.625000 2532.000000" stroke="#9a9aa4" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" marker-end="url(#mk-d2-287329431-3329488263)" mask="url(#d2-287329431)" /></g><g class="KGFzc2V0cyAtJmd0OyB0cmVmKVswXQ=="><path d="M 1673.958008 2534.000000 L 1673.958008 2506.000000 S 1673.958008 2496.000000 1683.958008 2496.000000 L 1961.500000 2496.000000 S 1971.500000 2496.000000 1971.506378 2486.000002 L 1971.997449 1715.999999" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /></g><g class="KHRyZWYgLSZndDsgZGIpWzBd"><path d="M 1866.999361 1714.000000 L 1866.919209 1965.000001 S 1866.916016 1975.000000 1856.916016 1975.000000 L 1243.375000 1975.000000 S 1233.375000 1975.000000 1233.335107 1984.999920 L 1233.015957 2065.000032" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-287329431-3488378134)" mask="url(#d2-287329431)" /><text x="1634.500000" y="1981.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">terrain_reference</text></g><g class="KGRiIC0mZ3Q7IGNhc2NhZGUpWzBd run"><marker id="mk-d2-287329431-1168034575" markerWidth="13.000000" markerHeight="16.000000" refX="8.500000" refY="8.000000" viewBox="0.000000 0.000000 13.000000 16.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 13.000000,8.000000 0.000000,16.000000" fill="#1f8f4a" class="connection" stroke-width="3" /> </marker><path d="M 1201.010417 2185.499978 L 1201.333334 2263.000087 S 1201.375000 2273.000000 1211.375000 2273.000000 L 1243.166016 2273.000000 S 1253.166016 2273.000000 1253.166016 2283.000000 L 1253.166016 2739.000000 S 1253.166016 2749.000000 1263.166016 2749.000000 L 1492.458008 2749.000000 S 1502.458008 2749.000000 1502.458008 2759.000000 L 1502.458008 2783.500000" stroke="#1f8f4a" fill="none" class="connection" style="stroke-width:3;" marker-end="url(#mk-d2-287329431-1168034575)" mask="url(#d2-287329431)" /></g><g class="KGFzc2V0cyAtJmd0OyBjYXNjYWRlKVswXQ== run"><path d="M 1552.458008 2620.500000 L 1552.458008 2783.500000" stroke="#1f8f4a" fill="none" class="connection" style="stroke-width:3;" marker-end="url(#mk-d2-287329431-1168034575)" mask="url(#d2-287329431)" /><text x="1552.500000" y="2709.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">read at runtime</text></g><g class="KGRiIC0mZ3Q7IGNsaWVudClbMF0= run"><path d="M 1169.002656 2185.499999 L 1169.369157 2530.500003" stroke="#1f8f4a" fill="none" class="connection" style="stroke-width:3;" marker-end="url(#mk-d2-287329431-1168034575)" mask="url(#d2-287329431)" /><text x="1169.000000" y="2365.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">shipped</text></g><mask id="d2-287329431" maskUnits="userSpaceOnUse" x="-19" y="-19" width="2138" height="2905">
<rect x="-19" y="-19" width="2138" height="2905" fill="white"></rect>
<rect x="822.000000" y="1965.000000" width="54" height="21" fill="black"></rect>
<rect x="1004.000000" y="1915.000000" width="69" height="21" fill="black"></rect>
<rect x="479.000000" y="1497.000000" width="55" height="21" fill="black"></rect>
<rect x="822.000000" y="830.000000" width="71" height="21" fill="black"></rect>
<rect x="1199.000000" y="1033.000000" width="85" height="21" fill="black"></rect>
<rect x="1371.000000" y="1387.000000" width="84" height="21" fill="black"></rect>
<rect x="416.000000" y="1518.000000" width="125" height="21" fill="black"></rect>
<rect x="1336.000000" y="1666.000000" width="102" height="21" fill="black"></rect>
<rect x="1575.000000" y="1965.000000" width="119" height="21" fill="black"></rect>
<rect x="1499.000000" y="2693.000000" width="107" height="21" fill="black"></rect>
<rect x="1140.000000" y="2349.000000" width="58" height="21" fill="black"></rect>
</mask></svg></svg>