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