From 0f6bab4734a103988d0eb66e57215c59de8567c8 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Fri, 13 Mar 2026 22:57:41 +0100 Subject: [PATCH] docs(docs): add star map d2 sector diagrams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six sector maps (core, N/S/E/W reach, deep frontier) plus overview. Generated from star-map.json — currently stale after topology tuning, will be regenerated once naming pass is complete. Co-Authored-By: Claude Opus 4.6 --- docs/diagrams/design/star-map-core.d2 | 639 ++++++++++ .../diagrams/design/star-map-deep-frontier.d2 | 1042 +++++++++++++++++ docs/diagrams/design/star-map-east-reach.d2 | 763 ++++++++++++ docs/diagrams/design/star-map-north-reach.d2 | 763 ++++++++++++ docs/diagrams/design/star-map-overview.d2 | 132 +++ docs/diagrams/design/star-map-south-reach.d2 | 767 ++++++++++++ docs/diagrams/design/star-map-west-reach.d2 | 755 ++++++++++++ 7 files changed, 4861 insertions(+) create mode 100644 docs/diagrams/design/star-map-core.d2 create mode 100644 docs/diagrams/design/star-map-deep-frontier.d2 create mode 100644 docs/diagrams/design/star-map-east-reach.d2 create mode 100644 docs/diagrams/design/star-map-north-reach.d2 create mode 100644 docs/diagrams/design/star-map-overview.d2 create mode 100644 docs/diagrams/design/star-map-south-reach.d2 create mode 100644 docs/diagrams/design/star-map-west-reach.d2 diff --git a/docs/diagrams/design/star-map-core.d2 b/docs/diagrams/design/star-map-core.d2 new file mode 100644 index 000000000..a86dd523b --- /dev/null +++ b/docs/diagrams/design/star-map-core.d2 @@ -0,0 +1,639 @@ +# Star Map — Core +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s001: "S-001\n[GATEWAY]\nhub" { + shape: hexagon + style.fill: "#1a2850" + style.stroke: "#5090e0" + style.font-color: "#c8d0e0" + style.font-size: 9 + style.stroke-width: 3 +} + +s010: "S-010\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s014: "S-014\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s027: "S-027\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s037: "S-037\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s047: "S-047\nwave 4\nhub" { + shape: hexagon + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s067: "S-067\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s074: "S-074\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s091: "S-091\nwave 5\nhub" { + shape: hexagon + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s093: "S-093\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s111: "S-111\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s114: "S-114\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s118: "S-118\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s119: "S-119\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s120: "S-120\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s139: "S-139\nwave 1\nhub" { + shape: hexagon + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s168: "S-168\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s181: "S-181\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s213: "S-213\nwave 2\njunction" { + shape: diamond + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s235: "S-235\nwave 2\njunction" { + shape: diamond + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s253: "S-253\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s263: "S-263\nwave 1\njunction" { + shape: diamond + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s265: "S-265\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s279: "S-279\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s297: "S-297\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s008: "S-008\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s015: "S-015\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s044: "S-044\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s054: "S-054\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s077: "S-077\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s090: "S-090\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s110: "S-110\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s161: "S-161\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s164: "S-164\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s186: "S-186\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s248: "S-248\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s266: "S-266\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s001 -- s067: { + style.stroke: "#5090e0" +} + +s067 -- s114: { + style.stroke: "#4a5a70" +} + +s001 -- s010: { + style.stroke: "#5090e0" +} + +s114 -- s047: { + style.stroke: "#4a5a70" +} + +s010 -- s213: { + style.stroke: "#4a5a70" +} + +s047 -- s014: { + style.stroke: "#4a5a70" +} + +s213 -- s120: { + style.stroke: "#4a5a70" +} + +s120 -- s253: { + style.stroke: "#4a5a70" +} + +s014 -- s168: { + style.stroke: "#4a5a70" +} + +s253 -- s297: { + style.stroke: "#4a5a70" +} + +s297 -- s119: { + style.stroke: "#4a5a70" +} + +s168 -- s263: { + style.stroke: "#4a5a70" +} + +s119 -- s118: { + style.stroke: "#4a5a70" +} + +s118 -- s111: { + style.stroke: "#4a5a70" +} + +s263 -- s044: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s111 -- s279: { + style.stroke: "#4a5a70" +} + +s279 -- s139: { + style.stroke: "#4a5a70" +} + +s139 -- s181: { + style.stroke: "#4a5a70" +} + +s181 -- s235: { + style.stroke: "#4a5a70" +} + +s235 -- s037: { + style.stroke: "#4a5a70" +} + +s037 -- s265: { + style.stroke: "#4a5a70" +} + +s265 -- s074: { + style.stroke: "#4a5a70" +} + +s074 -- s027: { + style.stroke: "#4a5a70" +} + +s027 -- s091: { + style.stroke: "#4a5a70" +} + +s248 -- s093: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s265 -- s181: { + style.stroke: "#4a5a70" +} + +s265 -- s118: { + style.stroke: "#4a5a70" +} + +s265 -- s027: { + style.stroke: "#4a5a70" +} + +s265 -- s213: { + style.stroke: "#4a5a70" +} + +s168 -- s118: { + style.stroke: "#4a5a70" +} + +s168 -- s010: { + style.stroke: "#4a5a70" +} + +s168 -- s253: { + style.stroke: "#4a5a70" +} + +s168 -- s111: { + style.stroke: "#4a5a70" +} + +s001 -- s091: { + style.stroke: "#5090e0" +} + +s001 -- s014: { + style.stroke: "#5090e0" +} + +s263 -- s235: { + style.stroke: "#4a5a70" +} + +s093 -- s074: { + style.stroke: "#4a5a70" +} + +s093 -- s067: { + style.stroke: "#4a5a70" +} + +s120 -- s091: { + style.stroke: "#4a5a70" +} + +s139 -- s120: { + style.stroke: "#4a5a70" +} + +s067 -- s027: { + style.stroke: "#4a5a70" +} + +s091 -- s119: { + style.stroke: "#4a5a70" +} + +s091 -- s114: { + style.stroke: "#4a5a70" +} + +s010 -- s037: { + style.stroke: "#4a5a70" +} + +s265 -- s263: { + style.stroke: "#4a5a70" +} + +s118 -- s120: { + style.stroke: "#4a5a70" +} + +s120 -- s037: { + style.stroke: "#4a5a70" +} + +s139 -- s010: { + style.stroke: "#4a5a70" +} + +s181 -- s093: { + style.stroke: "#4a5a70" +} + +s213 -- s067: { + style.stroke: "#4a5a70" +} + +s139 -- s047: { + style.stroke: "#4a5a70" +} + +s119 -- s067: { + style.stroke: "#4a5a70" +} + +s265 -- s014: { + style.stroke: "#4a5a70" +} + +s253 -- s027: { + style.stroke: "#4a5a70" +} + +s091 -- s168: { + style.stroke: "#4a5a70" +} + +s119 -- s047: { + style.stroke: "#4a5a70" +} + +s235 -- s111: { + style.stroke: "#4a5a70" +} + +s297 -- s014: { + style.stroke: "#4a5a70" +} + +s118 -- s093: { + style.stroke: "#4a5a70" +} + +s120 -- s074: { + style.stroke: "#4a5a70" +} + +s265 -- s015: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s010 -- s164: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s119 -- s266: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s265 -- s161: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s120 -- s186: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s120 -- s090: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s027 -- s008: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s119 -- s110: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s265 -- s077: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s047 -- s054: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} diff --git a/docs/diagrams/design/star-map-deep-frontier.d2 b/docs/diagrams/design/star-map-deep-frontier.d2 new file mode 100644 index 000000000..eb66c5a8b --- /dev/null +++ b/docs/diagrams/design/star-map-deep-frontier.d2 @@ -0,0 +1,1042 @@ +# Star Map — Deep Frontier +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s011: "S-011\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s012: "S-012\nwave 5\nspur_end" { + shape: rectangle + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s016: "S-016\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s042: "S-042\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s043: "S-043\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s049: "S-049\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s063: "S-063\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s069: "S-069\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s073: "S-073\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s078: "S-078\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s079: "S-079\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s084: "S-084\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s089: "S-089\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s096: "S-096\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s101: "S-101\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s105: "S-105\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s107: "S-107\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s115: "S-115\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s117: "S-117\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s122: "S-122\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s124: "S-124\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s126: "S-126\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s129: "S-129\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s130: "S-130\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s134: "S-134\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s137: "S-137\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s138: "S-138\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s141: "S-141\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s143: "S-143\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s145: "S-145\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s146: "S-146\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s147: "S-147\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s150: "S-150\nwave 5\nthrough_route" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s154: "S-154\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s158: "S-158\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s159: "S-159\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s163: "S-163\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s173: "S-173\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s177: "S-177\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s180: "S-180\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s184: "S-184\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s190: "S-190\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s194: "S-194\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s197: "S-197\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s205: "S-205\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s206: "S-206\nwave 5\ndead_end" { + shape: rectangle + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s208: "S-208\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s210: "S-210\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s214: "S-214\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s215: "S-215\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s218: "S-218\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s220: "S-220\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s221: "S-221\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s223: "S-223\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s224: "S-224\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s226: "S-226\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s230: "S-230\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s233: "S-233\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s242: "S-242\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s246: "S-246\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s252: "S-252\nwave 4\ndead_end" { + shape: rectangle + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s255: "S-255\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s256: "S-256\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s258: "S-258\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s262: "S-262\nwave 5\nthrough_route" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s271: "S-271\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s272: "S-272\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s280: "S-280\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s283: "S-283\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s284: "S-284\nwave 4\nspur_end" { + shape: rectangle + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s285: "S-285\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s290: "S-290\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s292: "S-292\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s296: "S-296\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s299: "S-299\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s004: "S-004\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s039: "S-039\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s051: "S-051\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s052: "S-052\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s080: "S-080\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s135: "S-135\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s164: "S-164\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s225: "S-225\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s052 -- s223: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s223 -- s107: { + style.stroke: "#4a5a70" +} + +s107 -- s258: { + style.stroke: "#4a5a70" +} + +s258 -- s226: { + style.stroke: "#4a5a70" +} + +s226 -- s124: { + style.stroke: "#4a5a70" +} + +s124 -- s296: { + style.stroke: "#4a5a70" +} + +s296 -- s063: { + style.stroke: "#4a5a70" +} + +s063 -- s242: { + style.stroke: "#4a5a70" +} + +s242 -- s221: { + style.stroke: "#4a5a70" +} + +s221 -- s141: { + style.stroke: "#4a5a70" +} + +s141 -- s147: { + style.stroke: "#4a5a70" +} + +s147 -- s280: { + style.stroke: "#4a5a70" +} + +s280 -- s043: { + style.stroke: "#4a5a70" +} + +s043 -- s224: { + style.stroke: "#4a5a70" +} + +s224 -- s096: { + style.stroke: "#4a5a70" +} + +s096 -- s073: { + style.stroke: "#4a5a70" +} + +s073 -- s283: { + style.stroke: "#4a5a70" +} + +s283 -- s011: { + style.stroke: "#4a5a70" +} + +s011 -- s126: { + style.stroke: "#4a5a70" +} + +s126 -- s220: { + style.stroke: "#4a5a70" +} + +s220 -- s255: { + style.stroke: "#4a5a70" +} + +s255 -- s271: { + style.stroke: "#4a5a70" +} + +s073 -- s134: { + style.stroke: "#4a5a70" +} + +s134 -- s290: { + style.stroke: "#4a5a70" +} + +s271 -- s177: { + style.stroke: "#4a5a70" +} + +s271 -- s042: { + style.stroke: "#4a5a70" +} + +s290 -- s146: { + style.stroke: "#4a5a70" +} + +s177 -- s208: { + style.stroke: "#4a5a70" +} + +s146 -- s214: { + style.stroke: "#4a5a70" +} + +s214 -- s105: { + style.stroke: "#4a5a70" +} + +s042 -- s145: { + style.stroke: "#4a5a70" +} + +s145 -- s051: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s208 -- s194: { + style.stroke: "#4a5a70" +} + +s194 -- s069: { + style.stroke: "#4a5a70" +} + +s107 -- s012: { + style.stroke: "#4a5a70" +} + +s105 -- s079: { + style.stroke: "#4a5a70" +} + +s069 -- s163: { + style.stroke: "#4a5a70" +} + +s163 -- s143: { + style.stroke: "#4a5a70" +} + +s012 -- s089: { + style.stroke: "#4a5a70" +} + +s079 -- s272: { + style.stroke: "#4a5a70" +} + +s143 -- s154: { + style.stroke: "#4a5a70" +} + +s089 -- s049: { + style.stroke: "#4a5a70" +} + +s063 -- s284: { + style.stroke: "#4a5a70" +} + +s049 -- s292: { + style.stroke: "#4a5a70" +} + +s096 -- s101: { + style.stroke: "#4a5a70" +} + +s284 -- s158: { + style.stroke: "#4a5a70" +} + +s154 -- s184: { + style.stroke: "#4a5a70" +} + +s292 -- s122: { + style.stroke: "#4a5a70" +} + +s122 -- s117: { + style.stroke: "#4a5a70" +} + +s184 -- s210: { + style.stroke: "#4a5a70" +} + +s158 -- s190: { + style.stroke: "#4a5a70" +} + +s190 -- s115: { + style.stroke: "#4a5a70" +} + +s115 -- s150: { + style.stroke: "#4a5a70" +} + +s210 -- s256: { + style.stroke: "#4a5a70" +} + +s150 -- s215: { + style.stroke: "#4a5a70" +} + +s215 -- s299: { + style.stroke: "#4a5a70" +} + +s117 -- s084: { + style.stroke: "#4a5a70" +} + +s084 -- s218: { + style.stroke: "#4a5a70" +} + +s299 -- s262: { + style.stroke: "#4a5a70" +} + +s256 -- s173: { + style.stroke: "#4a5a70" +} + +s262 -- s159: { + style.stroke: "#4a5a70" +} + +s218 -- s130: { + style.stroke: "#4a5a70" +} + +s101 -- s138: { + style.stroke: "#4a5a70" +} + +s138 -- s016: { + style.stroke: "#4a5a70" +} + +s016 -- s285: { + style.stroke: "#4a5a70" +} + +s173 -- s129: { + style.stroke: "#4a5a70" +} + +s272 -- s233: { + style.stroke: "#4a5a70" +} + +s129 -- s164: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s285 -- s137: { + style.stroke: "#4a5a70" +} + +s137 -- s230: { + style.stroke: "#4a5a70" +} + +s233 -- s180: { + style.stroke: "#4a5a70" +} + +s180 -- s135: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s130 -- s246: { + style.stroke: "#4a5a70" +} + +s230 -- s078: { + style.stroke: "#4a5a70" +} + +s078 -- s197: { + style.stroke: "#4a5a70" +} + +s197 -- s206: { + style.stroke: "#4a5a70" +} + +s246 -- s252: { + style.stroke: "#4a5a70" +} + +s159 -- s205: { + style.stroke: "#4a5a70" +} + +s080 -- s011: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s225 -- s220: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s004 -- s285: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s039 -- s073: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} diff --git a/docs/diagrams/design/star-map-east-reach.d2 b/docs/diagrams/design/star-map-east-reach.d2 new file mode 100644 index 000000000..e1f63b529 --- /dev/null +++ b/docs/diagrams/design/star-map-east-reach.d2 @@ -0,0 +1,763 @@ +# Star Map — East Reach +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s005: "S-005\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s021: "S-021\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s026: "S-026\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s039: "S-039\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s048: "S-048\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s051: "S-051\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s054: "S-054\nwave 4\nhub" { + shape: hexagon + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s056: "S-056\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s059: "S-059\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s060: "S-060\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s062: "S-062\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s064: "S-064\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s066: "S-066\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s068: "S-068\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s071: "S-071\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s076: "S-076\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s077: "S-077\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s085: "S-085\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s092: "S-092\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s095: "S-095\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s098: "S-098\nwave 5\ndead_end" { + shape: rectangle + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s108: "S-108\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s109: "S-109\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s121: "S-121\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s125: "S-125\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s131: "S-131\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s149: "S-149\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s160: "S-160\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s166: "S-166\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s175: "S-175\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s185: "S-185\nwave 3\nhub" { + shape: hexagon + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s193: "S-193\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s199: "S-199\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s207: "S-207\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s211: "S-211\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s216: "S-216\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s228: "S-228\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s229: "S-229\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s234: "S-234\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s236: "S-236\nwave 3\nhub" { + shape: hexagon + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s237: "S-237\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s244: "S-244\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s248: "S-248\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s250: "S-250\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s275: "S-275\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s281: "S-281\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s289: "S-289\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s294: "S-294\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s298: "S-298\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s300: "S-300\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s047: "S-047\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s058: "S-058\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s073: "S-073\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s093: "S-093\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s145: "S-145\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s202: "S-202\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s265: "S-265\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s145 -- s051: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s051 -- s068: { + style.stroke: "#4a5a70" +} + +s068 -- s207: { + style.stroke: "#4a5a70" +} + +s207 -- s250: { + style.stroke: "#4a5a70" +} + +s207 -- s005: { + style.stroke: "#4a5a70" +} + +s005 -- s236: { + style.stroke: "#4a5a70" +} + +s236 -- s234: { + style.stroke: "#4a5a70" +} + +s250 -- s289: { + style.stroke: "#4a5a70" +} + +s234 -- s064: { + style.stroke: "#4a5a70" +} + +s289 -- s216: { + style.stroke: "#4a5a70" +} + +s216 -- s085: { + style.stroke: "#4a5a70" +} + +s064 -- s059: { + style.stroke: "#4a5a70" +} + +s059 -- s048: { + style.stroke: "#4a5a70" +} + +s048 -- s131: { + style.stroke: "#4a5a70" +} + +s085 -- s229: { + style.stroke: "#4a5a70" +} + +s131 -- s244: { + style.stroke: "#4a5a70" +} + +s244 -- s060: { + style.stroke: "#4a5a70" +} + +s060 -- s149: { + style.stroke: "#4a5a70" +} + +s229 -- s054: { + style.stroke: "#4a5a70" +} + +s149 -- s185: { + style.stroke: "#4a5a70" +} + +s054 -- s199: { + style.stroke: "#4a5a70" +} + +s185 -- s066: { + style.stroke: "#4a5a70" +} + +s199 -- s294: { + style.stroke: "#4a5a70" +} + +s066 -- s211: { + style.stroke: "#4a5a70" +} + +s294 -- s056: { + style.stroke: "#4a5a70" +} + +s211 -- s076: { + style.stroke: "#4a5a70" +} + +s076 -- s193: { + style.stroke: "#4a5a70" +} + +s056 -- s026: { + style.stroke: "#4a5a70" +} + +s193 -- s166: { + style.stroke: "#4a5a70" +} + +s026 -- s071: { + style.stroke: "#4a5a70" +} + +s071 -- s108: { + style.stroke: "#4a5a70" +} + +s166 -- s175: { + style.stroke: "#4a5a70" +} + +s108 -- s039: { + style.stroke: "#4a5a70" +} + +s175 -- s160: { + style.stroke: "#4a5a70" +} + +s039 -- s228: { + style.stroke: "#4a5a70" +} + +s228 -- s298: { + style.stroke: "#4a5a70" +} + +s298 -- s021: { + style.stroke: "#4a5a70" +} + +s021 -- s121: { + style.stroke: "#4a5a70" +} + +s160 -- s275: { + style.stroke: "#4a5a70" +} + +s275 -- s077: { + style.stroke: "#4a5a70" +} + +s121 -- s062: { + style.stroke: "#4a5a70" +} + +s062 -- s109: { + style.stroke: "#4a5a70" +} + +s059 -- s281: { + style.stroke: "#4a5a70" +} + +s281 -- s237: { + style.stroke: "#4a5a70" +} + +s109 -- s125: { + style.stroke: "#4a5a70" +} + +s048 -- s300: { + style.stroke: "#4a5a70" +} + +s237 -- s092: { + style.stroke: "#4a5a70" +} + +s185 -- s095: { + style.stroke: "#4a5a70" +} + +s125 -- s248: { + style.stroke: "#4a5a70" +} + +s092 -- s202: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s300 -- s098: { + style.stroke: "#4a5a70" +} + +s248 -- s093: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s185 -- s085: { + style.stroke: "#4a5a70" +} + +s185 -- s026: { + style.stroke: "#4a5a70" +} + +s236 -- s298: { + style.stroke: "#4a5a70" +} + +s236 -- s054: { + style.stroke: "#4a5a70" +} + +s236 -- s300: { + style.stroke: "#4a5a70" +} + +s236 -- s294: { + style.stroke: "#4a5a70" +} + +s051 -- s199: { + style.stroke: "#4a5a70" +} + +s289 -- s064: { + style.stroke: "#4a5a70" +} + +s228 -- s054: { + style.stroke: "#4a5a70" +} + +s265 -- s077: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s047 -- s054: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s039 -- s073: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s236 -- s058: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} diff --git a/docs/diagrams/design/star-map-north-reach.d2 b/docs/diagrams/design/star-map-north-reach.d2 new file mode 100644 index 000000000..071b0132e --- /dev/null +++ b/docs/diagrams/design/star-map-north-reach.d2 @@ -0,0 +1,763 @@ +# Star Map — North Reach +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s006: "S-006\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s009: "S-009\nwave 5\nhub" { + shape: hexagon + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s015: "S-015\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s017: "S-017\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s022: "S-022\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s023: "S-023\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s024: "S-024\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s028: "S-028\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s032: "S-032\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s033: "S-033\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s040: "S-040\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s046: "S-046\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s050: "S-050\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s058: "S-058\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s065: "S-065\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s070: "S-070\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s075: "S-075\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s080: "S-080\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s081: "S-081\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s097: "S-097\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s099: "S-099\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s104: "S-104\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s106: "S-106\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s112: "S-112\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s127: "S-127\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s132: "S-132\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s152: "S-152\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s164: "S-164\nunsettled\nhub" { + shape: hexagon + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s171: "S-171\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s176: "S-176\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s183: "S-183\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s188: "S-188\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s191: "S-191\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s196: "S-196\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s198: "S-198\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s201: "S-201\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s203: "S-203\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s204: "S-204\nwave 2\nspur_end" { + shape: rectangle + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s231: "S-231\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s239: "S-239\nwave 4\njunction" { + shape: diamond + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s240: "S-240\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s241: "S-241\nwave 5\nspur_end" { + shape: rectangle + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s243: "S-243\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s251: "S-251\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s266: "S-266\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s268: "S-268\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s273: "S-273\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s276: "S-276\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s287: "S-287\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s291: "S-291\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s010: "S-010\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s011: "S-011\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s119: "S-119\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s129: "S-129\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s161: "S-161\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s236: "S-236\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s265: "S-265\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s129 -- s164: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s164 -- s106: { + style.stroke: "#4a5a70" +} + +s106 -- s040: { + style.stroke: "#4a5a70" +} + +s040 -- s050: { + style.stroke: "#4a5a70" +} + +s050 -- s046: { + style.stroke: "#4a5a70" +} + +s106 -- s127: { + style.stroke: "#4a5a70" +} + +s046 -- s239: { + style.stroke: "#4a5a70" +} + +s239 -- s183: { + style.stroke: "#4a5a70" +} + +s183 -- s196: { + style.stroke: "#4a5a70" +} + +s127 -- s198: { + style.stroke: "#4a5a70" +} + +s196 -- s006: { + style.stroke: "#4a5a70" +} + +s198 -- s188: { + style.stroke: "#4a5a70" +} + +s188 -- s112: { + style.stroke: "#4a5a70" +} + +s112 -- s201: { + style.stroke: "#4a5a70" +} + +s201 -- s015: { + style.stroke: "#4a5a70" +} + +s015 -- s097: { + style.stroke: "#4a5a70" +} + +s097 -- s171: { + style.stroke: "#4a5a70" +} + +s183 -- s251: { + style.stroke: "#4a5a70" +} + +s251 -- s075: { + style.stroke: "#4a5a70" +} + +s006 -- s268: { + style.stroke: "#4a5a70" +} + +s268 -- s132: { + style.stroke: "#4a5a70" +} + +s171 -- s273: { + style.stroke: "#4a5a70" +} + +s273 -- s024: { + style.stroke: "#4a5a70" +} + +s171 -- s266: { + style.stroke: "#4a5a70" +} + +s024 -- s017: { + style.stroke: "#4a5a70" +} + +s075 -- s276: { + style.stroke: "#4a5a70" +} + +s132 -- s028: { + style.stroke: "#4a5a70" +} + +s017 -- s065: { + style.stroke: "#4a5a70" +} + +s028 -- s204: { + style.stroke: "#4a5a70" +} + +s028 -- s243: { + style.stroke: "#4a5a70" +} + +s065 -- s152: { + style.stroke: "#4a5a70" +} + +s243 -- s080: { + style.stroke: "#4a5a70" +} + +s152 -- s191: { + style.stroke: "#4a5a70" +} + +s266 -- s241: { + style.stroke: "#4a5a70" +} + +s191 -- s009: { + style.stroke: "#4a5a70" +} + +s241 -- s032: { + style.stroke: "#4a5a70" +} + +s204 -- s099: { + style.stroke: "#4a5a70" +} + +s276 -- s231: { + style.stroke: "#4a5a70" +} + +s231 -- s240: { + style.stroke: "#4a5a70" +} + +s009 -- s033: { + style.stroke: "#4a5a70" +} + +s080 -- s081: { + style.stroke: "#4a5a70" +} + +s081 -- s022: { + style.stroke: "#4a5a70" +} + +s033 -- s104: { + style.stroke: "#4a5a70" +} + +s099 -- s023: { + style.stroke: "#4a5a70" +} + +s023 -- s291: { + style.stroke: "#4a5a70" +} + +s022 -- s058: { + style.stroke: "#4a5a70" +} + +s058 -- s203: { + style.stroke: "#4a5a70" +} + +s203 -- s287: { + style.stroke: "#4a5a70" +} + +s032 -- s070: { + style.stroke: "#4a5a70" +} + +s291 -- s176: { + style.stroke: "#4a5a70" +} + +s164 -- s015: { + style.stroke: "#4a5a70" +} + +s164 -- s009: { + style.stroke: "#4a5a70" +} + +s164 -- s239: { + style.stroke: "#4a5a70" +} + +s164 -- s273: { + style.stroke: "#4a5a70" +} + +s009 -- s081: { + style.stroke: "#4a5a70" +} + +s009 -- s196: { + style.stroke: "#4a5a70" +} + +s127 -- s075: { + style.stroke: "#4a5a70" +} + +s040 -- s183: { + style.stroke: "#4a5a70" +} + +s251 -- s203: { + style.stroke: "#4a5a70" +} + +s265 -- s015: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s010 -- s164: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s119 -- s266: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s080 -- s011: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s239 -- s161: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s236 -- s058: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} diff --git a/docs/diagrams/design/star-map-overview.d2 b/docs/diagrams/design/star-map-overview.d2 new file mode 100644 index 000000000..a5d092f3c --- /dev/null +++ b/docs/diagrams/design/star-map-overview.d2 @@ -0,0 +1,132 @@ +# Star Map — Overview +# Sector cluster view. Nodes = sectors. Edge labels = cross-sector gate connections. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +core: "Core\n25 systems · 14 hubs" { + shape: rectangle + style.fill: "#1a2040" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +northreach: "North Reach\n50 systems · 2 hubs" { + shape: rectangle + style.fill: "#1a2820" + style.stroke: "#4a9060" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +westreach: "West Reach\n50 systems · 2 hubs" { + shape: rectangle + style.fill: "#201e14" + style.stroke: "#907030" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +southreach: "South Reach\n50 systems · 2 hubs" { + shape: rectangle + style.fill: "#201814" + style.stroke: "#905030" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +eastreach: "East Reach\n50 systems · 3 hubs" { + shape: rectangle + style.fill: "#1a2028" + style.stroke: "#4070a0" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +deepfrontier: "Deep Frontier\n75 systems · 0 hubs" { + shape: rectangle + style.fill: "#201010" + style.stroke: "#803030" + style.font-color: "#c8d0e0" + style.border-radius: 8 +} + +gateway_note: "GATEWAY (S-001)\nDiplomatic Periphery · Core\nSol aperture: dormant" { + shape: hexagon + style.fill: "#1a2850" + style.stroke: "#5090e0" + style.font-color: "#c8d0e0" + style.stroke-width: 3 +} +gateway_note -> core: "located in" { + style.stroke: "#5090e0"; style.stroke-dash: 3 +} + +core -- eastreach: "3 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +core -- northreach: "3 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +core -- southreach: "3 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +core -- westreach: "3 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +deepfrontier -- eastreach: "2 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +deepfrontier -- northreach: "2 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +deepfrontier -- southreach: "2 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +deepfrontier -- westreach: "2 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +eastreach -- northreach: "1 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +eastreach -- southreach: "1 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +northreach -- westreach: "1 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} + +southreach -- westreach: "1 connections" { + style.stroke: "#6a7a40" + style.font-color: "#c8d0e0" +} diff --git a/docs/diagrams/design/star-map-south-reach.d2 b/docs/diagrams/design/star-map-south-reach.d2 new file mode 100644 index 000000000..996adf5bf --- /dev/null +++ b/docs/diagrams/design/star-map-south-reach.d2 @@ -0,0 +1,767 @@ +# Star Map — South Reach +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s002: "S-002\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s004: "S-004\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s008: "S-008\nwave 2\njunction" { + shape: diamond + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s013: "S-013\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s025: "S-025\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s029: "S-029\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s031: "S-031\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s041: "S-041\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s045: "S-045\nwave 4\ndead_end" { + shape: rectangle + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s055: "S-055\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s057: "S-057\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s061: "S-061\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s072: "S-072\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s082: "S-082\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s087: "S-087\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s090: "S-090\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s094: "S-094\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s100: "S-100\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s102: "S-102\nwave 4\njunction" { + shape: diamond + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s103: "S-103\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s110: "S-110\nwave 4\nhub" { + shape: hexagon + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s113: "S-113\nunsettled\njunction" { + shape: diamond + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s123: "S-123\nunsettled\ndead_end" { + shape: rectangle + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s133: "S-133\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s135: "S-135\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s136: "S-136\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s142: "S-142\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s148: "S-148\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s153: "S-153\nwave 2\nspur_end" { + shape: rectangle + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s156: "S-156\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s162: "S-162\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s165: "S-165\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s169: "S-169\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s174: "S-174\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s178: "S-178\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s187: "S-187\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s192: "S-192\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s200: "S-200\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s202: "S-202\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s209: "S-209\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s212: "S-212\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s219: "S-219\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s238: "S-238\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s247: "S-247\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s249: "S-249\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s259: "S-259\nunsettled\nloop_member" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s270: "S-270\nwave 5\ndead_end" { + shape: rectangle + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s277: "S-277\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s282: "S-282\nunsettled\njunction" { + shape: diamond + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s288: "S-288\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s027: "S-027\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s092: "S-092\n[East Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s119: "S-119\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s120: "S-120\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s180: "S-180\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s254: "S-254\n[West Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s285: "S-285\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s180 -- s135: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s135 -- s110: { + style.stroke: "#4a5a70" +} + +s135 -- s259: { + style.stroke: "#4a5a70" +} + +s110 -- s087: { + style.stroke: "#4a5a70" +} + +s092 -- s202: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s259 -- s025: { + style.stroke: "#4a5a70" +} + +s025 -- s029: { + style.stroke: "#4a5a70" +} + +s202 -- s156: { + style.stroke: "#4a5a70" +} + +s156 -- s288: { + style.stroke: "#4a5a70" +} + +s288 -- s113: { + style.stroke: "#4a5a70" +} + +s288 -- s082: { + style.stroke: "#4a5a70" +} + +s087 -- s209: { + style.stroke: "#4a5a70" +} + +s113 -- s103: { + style.stroke: "#4a5a70" +} + +s209 -- s282: { + style.stroke: "#4a5a70" +} + +s282 -- s090: { + style.stroke: "#4a5a70" +} + +s029 -- s200: { + style.stroke: "#4a5a70" +} + +s090 -- s072: { + style.stroke: "#4a5a70" +} + +s200 -- s212: { + style.stroke: "#4a5a70" +} + +s072 -- s133: { + style.stroke: "#4a5a70" +} + +s082 -- s219: { + style.stroke: "#4a5a70" +} + +s133 -- s057: { + style.stroke: "#4a5a70" +} + +s219 -- s277: { + style.stroke: "#4a5a70" +} + +s103 -- s008: { + style.stroke: "#4a5a70" +} + +s008 -- s249: { + style.stroke: "#4a5a70" +} + +s249 -- s187: { + style.stroke: "#4a5a70" +} + +s277 -- s041: { + style.stroke: "#4a5a70" +} + +s041 -- s013: { + style.stroke: "#4a5a70" +} + +s013 -- s055: { + style.stroke: "#4a5a70" +} + +s055 -- s174: { + style.stroke: "#4a5a70" +} + +s174 -- s061: { + style.stroke: "#4a5a70" +} + +s187 -- s031: { + style.stroke: "#4a5a70" +} + +s061 -- s178: { + style.stroke: "#4a5a70" +} + +s212 -- s169: { + style.stroke: "#4a5a70" +} + +s169 -- s192: { + style.stroke: "#4a5a70" +} + +s031 -- s102: { + style.stroke: "#4a5a70" +} + +s192 -- s162: { + style.stroke: "#4a5a70" +} + +s178 -- s165: { + style.stroke: "#4a5a70" +} + +s282 -- s247: { + style.stroke: "#4a5a70" +} + +s102 -- s094: { + style.stroke: "#4a5a70" +} + +s247 -- s004: { + style.stroke: "#4a5a70" +} + +s057 -- s238: { + style.stroke: "#4a5a70" +} + +s061 -- s153: { + style.stroke: "#4a5a70" +} + +s165 -- s123: { + style.stroke: "#4a5a70" +} + +s153 -- s002: { + style.stroke: "#4a5a70" +} + +s013 -- s100: { + style.stroke: "#4a5a70" +} + +s238 -- s045: { + style.stroke: "#4a5a70" +} + +s094 -- s142: { + style.stroke: "#4a5a70" +} + +s102 -- s148: { + style.stroke: "#4a5a70" +} + +s113 -- s136: { + style.stroke: "#4a5a70" +} + +s162 -- s270: { + style.stroke: "#4a5a70" +} + +s110 -- s282: { + style.stroke: "#4a5a70" +} + +s110 -- s061: { + style.stroke: "#4a5a70" +} + +s110 -- s187: { + style.stroke: "#4a5a70" +} + +s110 -- s200: { + style.stroke: "#4a5a70" +} + +s212 -- s247: { + style.stroke: "#4a5a70" +} + +s212 -- s113: { + style.stroke: "#4a5a70" +} + +s212 -- s008: { + style.stroke: "#4a5a70" +} + +s219 -- s209: { + style.stroke: "#4a5a70" +} + +s202 -- s165: { + style.stroke: "#4a5a70" +} + +s259 -- s212: { + style.stroke: "#4a5a70" +} + +s174 -- s135: { + style.stroke: "#4a5a70" +} + +s120 -- s090: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s027 -- s008: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s119 -- s110: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s004 -- s285: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s254 -- s288: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} diff --git a/docs/diagrams/design/star-map-west-reach.d2 b/docs/diagrams/design/star-map-west-reach.d2 new file mode 100644 index 000000000..7d943f1c9 --- /dev/null +++ b/docs/diagrams/design/star-map-west-reach.d2 @@ -0,0 +1,755 @@ +# Star Map — West Reach +# Sector map. Cross-sector connections shown as stub nodes (dashed border). +# Node color = settlement wave. Shape = topology type. + +vars: { + bg: "#1a1e24" + txt: "#c8d0e0" + acc: "#c8d8f0" +} + +direction: right + +style.fill: "#1a1e24" +style.stroke: "#c8d8f0" +style.font-color: "#c8d0e0" + +legend: Legend { + style.fill: "#1a1e24"; style.stroke: "#c8d8f0"; style.font-color: "#c8d0e0" + style.font-size: 10 + wave1: Wave 1 { style.fill: "#1a2a50"; style.stroke: "#3060c0"; style.font-color: "#c8d0e0" } + wave2: Wave 2 { style.fill: "#2e2800"; style.stroke: "#b8a020"; style.font-color: "#c8d0e0" } + wave3: Wave 3 { style.fill: "#162a1a"; style.stroke: "#3a8a50"; style.font-color: "#c8d0e0" } + wave4: Wave 4 { style.fill: "#2e1400"; style.stroke: "#c86010"; style.font-color: "#c8d0e0" } + wave5: Wave 5 { style.fill: "#2e0a0a"; style.stroke: "#c02020"; style.font-color: "#c8d0e0" } + unsettled: Unsettled { style.fill: "#1a1e24"; style.stroke: "#4a5060"; style.font-color: "#c8d0e0" } +} + +s003: "S-003\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s007: "S-007\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s018: "S-018\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s019: "S-019\nwave 5\nthrough_route" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s020: "S-020\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s030: "S-030\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s034: "S-034\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s035: "S-035\nwave 1\nthrough_route" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s036: "S-036\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s038: "S-038\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s044: "S-044\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s052: "S-052\nwave 4\njunction" { + shape: diamond + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s053: "S-053\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s083: "S-083\nunsettled\nthrough_route" { + shape: oval + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s086: "S-086\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s088: "S-088\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s116: "S-116\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s128: "S-128\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s140: "S-140\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s144: "S-144\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s151: "S-151\nwave 4\nthrough_route" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s155: "S-155\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s157: "S-157\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s161: "S-161\nwave 5\njunction" { + shape: diamond + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s167: "S-167\nwave 3\nthrough_route" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s170: "S-170\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s172: "S-172\nwave 2\nspur_end" { + shape: rectangle + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s179: "S-179\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s182: "S-182\nwave 1\nloop_member" { + shape: oval + style.fill: "#1a2a50" + style.stroke: "#3060c0" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s186: "S-186\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s189: "S-189\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s195: "S-195\nunsettled\nhub" { + shape: hexagon + style.fill: "#1a1e24" + style.stroke: "#4a5060" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s217: "S-217\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s222: "S-222\nwave 2\nloop_member" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s225: "S-225\nwave 2\nhub" { + shape: hexagon + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s227: "S-227\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s232: "S-232\nwave 4\njunction" { + shape: diamond + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s245: "S-245\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s254: "S-254\nwave 3\njunction" { + shape: diamond + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s257: "S-257\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s260: "S-260\nwave 3\ndead_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s261: "S-261\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s264: "S-264\nwave 2\ndead_end" { + shape: rectangle + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s267: "S-267\nwave 5\nloop_member" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s269: "S-269\nwave 4\nloop_member" { + shape: oval + style.fill: "#2e1400" + style.stroke: "#c86010" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s274: "S-274\nwave 3\nspur_end" { + shape: rectangle + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s278: "S-278\nwave 3\nloop_member" { + shape: oval + style.fill: "#162a1a" + style.stroke: "#3a8a50" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s286: "S-286\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s293: "S-293\nwave 5\nthrough_route" { + shape: oval + style.fill: "#2e0a0a" + style.stroke: "#c02020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s295: "S-295\nwave 2\nthrough_route" { + shape: oval + style.fill: "#2e2800" + style.stroke: "#b8a020" + style.font-color: "#c8d0e0" + style.font-size: 9 +} + +s120: "S-120\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s220: "S-220\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s223: "S-223\n[Deep Frontier]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s239: "S-239\n[North Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s263: "S-263\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s265: "S-265\n[Core]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s288: "S-288\n[South Reach]" { + shape: rectangle + style.fill: "#111418" + style.stroke: "#3a4050" + style.stroke-dash: 5 + style.font-color: "#3a4050" + style.font-size: 9 +} + +s263 -- s044: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s044 -- s186: { + style.stroke: "#4a5a70" +} + +s186 -- s128: { + style.stroke: "#4a5a70" +} + +s128 -- s217: { + style.stroke: "#4a5a70" +} + +s217 -- s269: { + style.stroke: "#4a5a70" +} + +s269 -- s179: { + style.stroke: "#4a5a70" +} + +s179 -- s267: { + style.stroke: "#4a5a70" +} + +s267 -- s245: { + style.stroke: "#4a5a70" +} + +s245 -- s189: { + style.stroke: "#4a5a70" +} + +s189 -- s261: { + style.stroke: "#4a5a70" +} + +s261 -- s003: { + style.stroke: "#4a5a70" +} + +s003 -- s018: { + style.stroke: "#4a5a70" +} + +s186 -- s222: { + style.stroke: "#4a5a70" +} + +s018 -- s161: { + style.stroke: "#4a5a70" +} + +s222 -- s254: { + style.stroke: "#4a5a70" +} + +s161 -- s144: { + style.stroke: "#4a5a70" +} + +s254 -- s257: { + style.stroke: "#4a5a70" +} + +s144 -- s053: { + style.stroke: "#4a5a70" +} + +s257 -- s182: { + style.stroke: "#4a5a70" +} + +s182 -- s086: { + style.stroke: "#4a5a70" +} + +s086 -- s227: { + style.stroke: "#4a5a70" +} + +s053 -- s170: { + style.stroke: "#4a5a70" +} + +s170 -- s225: { + style.stroke: "#4a5a70" +} + +s227 -- s278: { + style.stroke: "#4a5a70" +} + +s225 -- s157: { + style.stroke: "#4a5a70" +} + +s157 -- s036: { + style.stroke: "#4a5a70" +} + +s036 -- s034: { + style.stroke: "#4a5a70" +} + +s034 -- s052: { + style.stroke: "#4a5a70" +} + +s052 -- s223: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s278 -- s030: { + style.stroke: "#4a5a70" +} + +s157 -- s232: { + style.stroke: "#4a5a70" +} + +s030 -- s140: { + style.stroke: "#4a5a70" +} + +s232 -- s172: { + style.stroke: "#4a5a70" +} + +s172 -- s019: { + style.stroke: "#4a5a70" +} + +s019 -- s088: { + style.stroke: "#4a5a70" +} + +s088 -- s116: { + style.stroke: "#4a5a70" +} + +s116 -- s083: { + style.stroke: "#4a5a70" +} + +s083 -- s286: { + style.stroke: "#4a5a70" +} + +s286 -- s167: { + style.stroke: "#4a5a70" +} + +s167 -- s295: { + style.stroke: "#4a5a70" +} + +s140 -- s195: { + style.stroke: "#4a5a70" +} + +s195 -- s020: { + style.stroke: "#4a5a70" +} + +s295 -- s293: { + style.stroke: "#4a5a70" +} + +s020 -- s007: { + style.stroke: "#4a5a70" +} + +s007 -- s274: { + style.stroke: "#4a5a70" +} + +s274 -- s151: { + style.stroke: "#4a5a70" +} + +s151 -- s035: { + style.stroke: "#4a5a70" +} + +s232 -- s264: { + style.stroke: "#4a5a70" +} + +s035 -- s155: { + style.stroke: "#4a5a70" +} + +s293 -- s260: { + style.stroke: "#4a5a70" +} + +s155 -- s038: { + style.stroke: "#4a5a70" +} + +s195 -- s227: { + style.stroke: "#4a5a70" +} + +s195 -- s254: { + style.stroke: "#4a5a70" +} + +s195 -- s052: { + style.stroke: "#4a5a70" +} + +s225 -- s052: { + style.stroke: "#4a5a70" +} + +s225 -- s195: { + style.stroke: "#4a5a70" +} + +s225 -- s144: { + style.stroke: "#4a5a70" +} + +s225 -- s007: { + style.stroke: "#4a5a70" +} + +s265 -- s161: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s120 -- s186: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s225 -- s220: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s239 -- s161: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +} + +s254 -- s288: { + style.stroke: "#6a7a40" + style.stroke-dash: 4 + style.stroke-width: 1 +}