docs(docs): add district topology diagram

D2 source + PNG render showing all zone connections, access tiers,
z-levels, maintenance corridor routing, and dual entry vectors.
Vertical layout with color-coded access tiers per D-093.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 21:08:34 +01:00
co-authored by Claude Opus 4.6
parent e4a3e0ce60
commit 95a9b349a0
2 changed files with 235 additions and 0 deletions
+235
View File
@@ -0,0 +1,235 @@
# District Topology — Sova Transit District
# D-093 spatial layout. D-094 hierarchy: 256×256 vt (4×4 blocks).
# North = span gate entry. South-east = tram entry.
direction: down
vars: {
bg: "#1a1e24"
txt: "#c8d0e0"
acc: "#c8d8f0"
pub: "#1a3320"
spub: "#2e2a10"
spriv: "#2e1a08"
priv: "#2a0e0e"
comm: "#0e1a2e"
neut: "#1e2228"
s-pub: "#3a8a50"
s-spub: "#b8a020"
s-spriv: "#c86010"
s-priv: "#c02020"
s-comm: "#3060c0"
s-neut: "#4a5060"
}
# ── LEGEND ──
legend: Legend {
style.fill: ${bg}
style.stroke: ${acc}
style.font-color: ${txt}
style.font-size: 11
direction: right
l1: Public { style.fill: ${pub}; style.stroke: ${s-pub}; style.font-color: ${txt} }
l2: Semi-pub { style.fill: ${spub}; style.stroke: ${s-spub}; style.font-color: ${txt} }
l3: Semi-priv { style.fill: ${spriv}; style.stroke: ${s-spriv}; style.font-color: ${txt} }
l4: Private { style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt} }
l5: Commission { style.fill: ${comm}; style.stroke: ${s-comm}; style.font-color: ${txt} }
}
# ── NORTH ENTRY: SPAN GATE ──
span_gate: The Ring\n(span gate aperture) {
shape: hexagon
style.fill: ${comm}
style.stroke: ${s-comm}
style.font-color: ${txt}
}
# ── GATE CLUSTER ──
gate: Gate Cluster · 40×32 vt {
style.fill: ${bg}
style.stroke: ${s-comm}
style.font-color: ${txt}
style.border-radius: 4
aperture: Aperture\n8×4 {
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
staging: Freight Staging\n24×8 {
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
pab: Passenger Arrival\n12×8 {
style.fill: ${spub}; style.stroke: ${s-spub}; style.font-color: ${txt}
}
customs: Customs Lanes\n(freight 5×4vt + ped 3×2vt) {
style.fill: ${spriv}; style.stroke: ${s-spriv}; style.font-color: ${txt}
}
concourse: Concourse\n40×8 · PUBLIC {
style.fill: ${pub}; style.stroke: ${s-pub}; style.font-color: ${txt}
}
gallery: Gallery · z=2\n32×10 · COMMISSION {
style.fill: ${comm}; style.stroke: ${s-comm}; style.font-color: ${txt}
}
aperture -> staging: freight { style.stroke: ${s-priv} }
aperture -> pab: passenger { style.stroke: ${s-spub} }
staging -> customs { style.stroke: ${s-spriv} }
pab -> customs { style.stroke: ${s-spub} }
customs -> concourse { style.stroke: ${s-pub} }
concourse -> gallery: "staircase (Commission)" {
style.stroke: ${s-comm}; style.stroke-dash: 4
}
gallery -> customs: "LOS z=2 down" {
style.stroke: ${s-comm}; style.stroke-dash: 4
}
}
span_gate -> gate.aperture: "dual-use transit\n(90s flicker)" {
style.stroke: ${s-comm}
}
# ── TERMINAL ──
terminal: Terminal · 44×28 vt {
style.fill: ${bg}
style.stroke: ${s-spriv}
style.font-color: ${txt}
style.border-radius: 4
forecourt: Forecourt\n44×4 {
style.fill: ${spub}; style.stroke: ${s-spub}; style.font-color: ${txt}
}
cargo: Cargo Floor + Main Corridor {
style.fill: ${spriv}; style.stroke: ${s-spriv}; style.font-color: ${txt}
}
storage: Restricted Storage\n(single coded door) {
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
hatch_t: M-HATCH-T {
shape: diamond
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
forecourt -> cargo { style.stroke: ${s-spriv} }
cargo -> storage: "coded door" { style.stroke: ${s-priv} }
storage -> hatch_t { style.stroke: ${s-priv} }
}
gate.concourse -> terminal.forecourt: "district spine (south)" {
style.stroke: ${s-pub}
}
# ── TRANSITION CORRIDOR ──
corridor: Transition Corridor\n~40×6 vt {
style.fill: ${spub}
style.stroke: ${s-spub}
style.font-color: ${txt}
style.border-radius: 4
}
terminal.cargo -> corridor: "public route" {
style.stroke: ${s-spub}
}
# ── BAR ──
bar: The Last Shift · 28×22 vt {
style.fill: ${bg}
style.stroke: ${s-pub}
style.font-color: ${txt}
style.border-radius: 4
approach: Bar Approach\n28×3 {
style.fill: ${spub}; style.stroke: ${s-spub}; style.font-color: ${txt}
}
floor: Main Floor\n(corner booth · card table) {
style.fill: ${pub}; style.stroke: ${s-pub}; style.font-color: ${txt}
}
bathroom: Bathroom Corridor\n(east ext.) {
style.fill: ${spriv}; style.stroke: ${s-spriv}; style.font-color: ${txt}
}
backroom: Back Room\n(Lera) {
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
hatch_b: M-HATCH-B {
shape: diamond
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
approach -> floor { style.stroke: ${s-pub} }
floor -> bathroom: "east door" { style.stroke: ${s-spriv} }
floor -> backroom: "staff only" { style.stroke: ${s-priv} }
bathroom -> hatch_b { style.stroke: ${s-priv} }
}
corridor -> bar.approach: "bar-side decompression" {
style.stroke: ${s-spub}
}
# ── MAINTENANCE CORRIDOR (z=0) ──
maint: Maintenance Corridor\n(z=0 · Era 1 · 2vt wide)\nzero public traffic {
style.fill: ${priv}
style.stroke: ${s-priv}
style.font-color: ${txt}
style.border-radius: 4
style.stroke-dash: 5
}
junc: JUNC-1 {
shape: diamond
style.fill: ${priv}; style.stroke: ${s-priv}; style.font-color: ${txt}
}
terminal.hatch_t -> maint: "z=1 down z=0" {
style.stroke: ${s-priv}; style.stroke-dash: 5
}
maint -> junc { style.stroke: ${s-priv}; style.stroke-dash: 5 }
junc -> bar.hatch_b: "z=0 up z=1" {
style.stroke: ${s-priv}; style.stroke-dash: 5
}
# ── SOUTH-EAST ENTRY: TRAM ──
the_loop: The Loop\n(station tram · 6 districts) {
shape: hexagon
style.fill: ${neut}
style.stroke: ${s-neut}
style.font-color: ${txt}
}
platform: Transit Platform\n~12×8 vt · bar-side\n(encounter node) {
style.fill: ${pub}
style.stroke: ${s-pub}
style.font-color: ${txt}
style.border-radius: 4
}
the_loop -> platform: "workers arrive here (G-11)" {
style.stroke: ${s-neut}
}
platform -> bar.approach: "adjacent" {
style.stroke: ${s-pub}
}
# ── SECTOR 3 ──
sector3: Sector 3 Residential\n~15×12 vt · Drin/Naia {
style.fill: ${spub}
style.stroke: ${s-spub}
style.font-color: ${txt}
style.border-radius: 4
}
sector3 -> terminal.forecourt: "near Terminal" {
style.stroke: ${s-spub}; style.stroke-dash: 3
}
sector3 -> maint: "adjacent to spine" {
style.stroke: ${s-neut}; style.stroke-dash: 3
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 KiB