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:
@@ -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 |
Reference in New Issue
Block a user