Files
settled-reach/docs/diagrams/design/star-map-overview.svg
T
jpmschweitzerandClaude Opus 5 0817befcba docs(diagrams): SVG replaces PNG, and a map of the wiki generator flow
d2 emits SVG natively; its PNG path wants a ~150 MB headless-Chromium
download and prompts interactively, so every PNG here was produced by an
out-of-band magick step. There is no Chromium on this system. Dropping PNG
removes the dependency rather than trading one format for another, and cuts
docs/diagrams/ from 17 MB to 3.3 MB. SVG renders in Gitea and in clide
(`clide draw --file <path>`, which takes .d2 source directly), and diffs as
text.

One PNG is kept on purpose: design/star-map-concentric.png has no .d2 source.

Also renders the 7 star-map .d2 files for the first time. star-map-plan.md
listed their renders as a deliverable in March and the step never ran; the
new `make check-diagrams` is what surfaced it.

New: docs/diagrams/data-flow/wiki-generator-flow.d2 — which way the arrows
point for any file under wiki/. Every edge was read in the tool's own source
rather than inferred. It records the trap that keeps costing us: scaffold_bodies.py
writes a body page once and never overwrites it, and the generator then reads
that frontmatter directly — so a hand-edit there is not reverted, it is obeyed,
and silently changes world generation.

Two rendering traps found the expensive way and now written down:

- A d2 `|md` block becomes an SVG <foreignObject>. ImageMagick and flutter_svg
  both silently drop it, so the legend was in the file and invisible in every
  viewer except a browser. Plain labels render as real <text> everywhere.
- Container boxes fight the layout engine. Grouping nodes whose flow-depths
  differ forces long edge routes; this diagram went from an unreadable 2.4:1
  sprawl to a legible 0.75:1 by deleting five containers and changing nothing
  else. Colour classes carry the grouping instead.

make diagrams / make check-diagrams render and gate. Repo-specific rules in
.claude/rules/diagrams.md; d2 syntax and the traps live in the user-scope
d2-diagram skill, whose PNG default was flipped to SVG to match.

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

115 lines
28 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="v0.8.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 2133 654"><svg class="d2-62264228 d2-svg" width="2133" height="654" viewBox="-102 -100 2133 654"><rect x="-102.000000" y="-100.000000" width="2133.000000" height="654.000000" rx="0.000000" stroke="#c8d8f0" fill="#1a1e24" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-62264228 .text-bold {
font-family: "d2-62264228-font-bold";
}
@font-face {
font-family: d2-62264228-font-bold;
src: url("data:application/font-woff;base64,d09GRgABAAAAABCoAAoAAAAAGQwAAguFAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgXxHXrmNtYXAAAAFUAAAAxwAAARQFpQdGZ2x5ZgAAAhwAAAm0AAANCMynRYBoZWFkAAAL0AAAADYAAAA2G38e1GhoZWEAAAwIAAAAJAAAACQKfwXuaG10eAAADCwAAACxAAAAvFrmCBxsb2NhAAAM4AAAAGAAAABgUIRTtG1heHAAAA1AAAAAIAAAACAARwD3bmFtZQAADWAAAAMoAAAIKgjwVkFwb3N0AAAQiAAAAB0AAAAg/9EAMgADAioCvAAFAAACigJYAAAASwKKAlgAAAFeADIBKQAAAgsHAwMEAwICBGAAAvcAAAADAAAAAAAAAABBREJPACAAIP//Au7/BgAAA9gBESAAAZ8AAAAAAfAClAAAACAAA3icjM7LKkQBHIDx35k5OBj3+/24z9CUjZSdLOwkKVlaKMpCUxZeSJHsXFc8igcQe4u/OjzAfOvf4kOiLEFFmmSoyqUyuZq6dRs2bdmxa8+BQ0dOnLlw6cpTBHJVdWv/cruQ+4U8dupc40/Gh1L8xHd8xWe8x1u8xks8x2M8xH3cxW3cxHU0ipfmSqxYLX5nzZm3YNGSZSVlqRat2mTadehU0aVbj159+g0YNGTYiFFjxk2YNGXajBq/AAAA//8BAAD//0YKM9AAeJxsVm1MW+fZvp/Hxk4cY/DH8bGNvw8+xzbYYB8fH74NwTaQ2CRAgKQYSFEaaEiAJqSQhryt9OZt9LbO+kGWsnZrp6iRuqr9UWU/2mps0qSqqxqpP9ou06SmXVt1maKtbLO6qAV7eo4dCNl+HD/+cZ/7ua/rvq77PlAG+wHwBL4EMtgJFaADCoDXurQenuMYpciLIkPLRA5plfuxLn/1Vc4n9/nkfueK47HxcZQew5c2jo+kJya+G29uzr/8zrv5i+jUuwC48D0A7sRZ2AlaAL2S51iWYxQKmZ7XMxyj/Kby6YryqnK52vz99beu/9T7vhftaWkJzfCRE/n/w9mN+ZdeAgBAECzkcD1egSqAMjfLCpFolA8baSXLMm6FgjIY+XBUpBVotP+pgcGL/bEjrl6zyNT21Ax1e2Om3n516scnjv+kj3eP0bbw2O4jc9XmzGHAkAbAKZwFVRExHzYaKYNCwXB8OBoVIizLMOm3jzzft/+ZwwFrw0AwONBgxdn4M3Nzz3cteDO9vYc8Un1pAPQtzsIuiTfKRfEUQ7moNFrJ/3DzJqrA2aX/PXt5aTP2lsTJPbFp9FL+zpdf4uzSC0sbW5jjeAUc/w1zCbLACLxWoUAnDj03OPzscNdRZ9rc4E8dzowYWPXxv7kfKQGPuMaM9rmJI3Mq1dxi/hNXsFiHhF0vIdfTPMsKAq9lZBxjNFJU+oXX2+VyTZYcZeU4m//Vs5Enmr7ZmEeJH0WXmv4MUOKvHmdBDYZt/DGUlg8LEULfF92nk8n5RF/3YntLHGe5zL7URN1nqH+K98NmjgGcBQ3Q9+RQEoGQLNFimtuJk/GYcOnqub5UU2trUwpnPQd7u0fp/A+3b6PDofp6lnDGFHJYhVfAL3HGiUZjMQHHBfF/EEjTxWqRof3x8AFmyBsM8DWDrha2+eF4w5x/r7OdYwON/gPNyaYZdX3wITvrtjlsumpNXbIuejBS6x81VzmsdrvWbTqQiGYaAIEZAOtxFpQECSO4KEZ7/Rr6/hquXFraWCv2VQMgc+IsuAB4Ga83Gmk+GhX19/yTMbKiT5SyC2deCCg0CrlKr0qeS6r0KrmyXBm4OP9O+47yMrmifEcrzuY/4icjkUkehfIfhaYEYTKMQhvzyMumq6vTbP4PgAp3ADCFs1ABwAsyni5dJfIyavW9l5s0lnK5xlre/OJ7t9Crlz0Jlk14Luczt6T++As59AlaBzMwALSbCFGUKFRyEqGUliG1ikSOkhd/Hd9/fhkzPkd7tVA33TR+dFEld3TtMHv0vS0O9XCs92CFizNRD9qqZ07mv+atzElaP6yqsZlo6b6OQg4b8SoYSsrnGCWj5SmldJnUMI70lHErKaMRJVydNrn61LLcFne3HKxrGT/IRodqfQav2uUU8OobKYut7ZHU4JnYYjL1ZOBDnUbqQXUhh1bROlju99aWtWiFApkTsx3dj8aDXdYE4xRisXpTUN/kGVK3nu4fmG+10+O2VEd7mqo47Kwqapkr5NA6XgU9OO9yJSXmiLE2WborwH9kZpvHI74Gs2J5USW3JLGJ0+lrDEy0Tv30mb7TbVZT6hcbnSELs2gwf6jTdHb1JABLtf8JrYPpvskgucZFFE9ql/ERcgtydJ3c3Xm8uWu0To7zN1TJkBANsWMvXuNq3VF123x/33wsNh3Xe3ZGedchix01+YS6ok47CCCpD8SVJf4pLaOVEiu1HctK695wX8+yzWn1mvDqG4fMNdOj+evIFfWa6fxbUCiACACf4Y8xC7UAoIQAPFXMXcghHV4leiQsaXntJum/SzUva3eWKRU6tUc9shczGzdoHUInypTFmmQ2tC55R8sTDRN2t1Wm3Dw7iO6SIaFD79oT2r932eb01JOfOrTW7gjUeN2hu+XW598qHXdxo/US7tId9+JeVMmd6U3gaC1mD2zDXewRVqJ1qLhvY23JtyQBZIzNxuOzsdhMPD4TCwSDgWAgUNJX6/xA/+nWhXR7R4rIrOiNbmxE66AHOwC9VR2ZuW6Woyn9ljVInbYe7oGplvGos8VSto+NDtX4Dd638WshC/P/pwYXY1Xmfc+h6k1jSNjRM2gddNv4LU7MIvKqFEtZVaZyc6W11YDWhsOhsrLH5XJfOP8FIKAKOfQKWgdO6uvW/GWL83czGZm+dkwZFB+HJtnd7pjDZbcFLfZm78ODjcOO3ZaIpbGRdbb6ptSsI2OuovVao16lrm70JYY400GDkTOZNbuYxmDnaFGr2kIOzeB5skHK3KwgMIIo8tJi3TIzZPbFU9rHFhYYm9qsovWi+tjQBycU58+fet/vUcinFepirpZCDt1Ba6T/27SpLVn49309y3anlTUuL+6SOfaop0dRJP+54LPYUHe+MuGpBQTqQhvaQGuk+1s8iOK2yavBi0ZXhUWp2+HxqpS/udS1S6eS79DubLn4Bt2w77cK+Rwqq7ZZ0FefupMepov5NL+rbbC0Mz2FHLqNL8Cukr6K3FIGoq3id0vxs8iIdhw9d+4oecxemvaaTV6Tyat+/cqVq1evXHn9pGdseDjjdmeGh8c8BHsSAP0RnwU12RNkg0WjIjF/8qmFSLf7+MICmh1RWQ0b6wtFruwA6Gt8Aawkvg0XZV3aC5IqydTgKU/fuWTI5xZN++sm4rExoTkTMbUYnziQPvdwoC7EWfaF+fBIqzA7G5WVLZG8xkIOfY4vgO9+HTHCXfPc3T4GBRE7ueuf6RNM3Jb01jVY9ySG2r2sW7TvqZ1omjgj8mJXx7Q67B21VnPVVp9xqo51eeyWB9iakYFQ0iivTLc1D9QUudUDoDv4LOwkCtDzZN2RVawXXIKecMFQP3+yDMnVFk04/9dbv+zpQTsmHX12S7QqP7PyEPqf/MW5FYKBLuTQF/gsmdLbMEi1610Uo9xk6V+9x9ndtrg31NRQa/XYduvQ1F92uVhxpKHjmDriGbV4wqH6sEbnRx1LCxX+4XjySETivxYAfYPPQjkA34ZFl+CiNDLlKwp3siX/FXpX7PRUyo+99uLA0gOdj559dhTITG4t5OBb9HfMQRAAxUFBTkBQAx8gFwqBDEAUeKrmuw+mpqR4+Bq+RT/DSiluTYrtLqSRF39O7qWl4UYcRkx9PZZIxDJiOCxem7x5/vzNSfbBG9PHbkwAgvpCGlWW3uEklRJOKIMim2kIhxsysUTiGjtx49j0jQdZ6d3iPIJP0Bqpidfy2o5ltJavBFR4EzfCAP6YfG9r71G/Jxj0eIJB3OhnGD95SK0SXniTxNL3xF5meZ5leV4tcF5B8HIC/BsAAP//AQAA//+djsw4AAEAAAACC4WN+h9/Xw889QABA+gAAAAA2F2ghAAAAADdZi82/jf+xAhtA/EAAQADAAIAAAAAAAAAAQAAA9j+7wAACJj+N/43CG0AAQAAAAAAAAAAAAAAAAAAAC94nBzJMUrEQBhH8ff9A4IQdcSo2KQxIpgx2CmYKb4mWDhgYREP4CkEvYG9h7DZdi+w/V5m2SbLpnrwflrwxgqUpq0GOn2R1ZBVkvVNpz+y3sn6JCtyrchVcc+xjqaNTrhTwm1No8StDmj0jFvFo9V48YGrx9XO7vaL25Jz++FUT/Q6pFTgRoFBgVqBCwXOFLhUIFok2Svt3JEXG3mwCofpf/92AAAA//8BAAD//+edGkwAAAAAAAAsACwAUAB8AKAAtgDKAPoBHAE+AWQBpAG2AfACDgJGAngCpALWAwoDLAM4A1QDhgOoA9QEBAQkBGAEhgSoBNgFBAUcBUgFhgWqBdwF9gYCBg4GGAYyBkwGWAZuBoQAAQAAAC8AkAAMAGMABwABAAAAAAAAAAAAAAAAAAQAA3icnJTPbhtVFMZ/TmzTCsECRVW6ie6CRZHo2FRJ1TYrh9SKRRQHjwtCQkgTz/iPMp4ZeSYO4QlY8xa8RVc8BM+BWKP5fOzYBdEmipJ8d+75851zvnOBHf5mm0r1IfBHPTFcYa9+bniLB/UTw9u061uGqzyp/Wm4RlibG67zea1n+CPeVn8z/ID96k+GH7JbbRv+mGfVHcOfbDv+Mvwp+7xd4Aq84FfDFXbJDG+xw4+Gt3mExaxUeUTTcI3P2DNcZw/oM6EgZkLCCMeQCSOumBGR4xMxY8KQiBBHhxYxhb4mBEKO0X9+DfApmBEo4pgCR4xPTEDO2CL+Iq+Uc2Uc6jSzuxYFYwIu5HFJQIIjZURKQsSl4hQUZLyiQYOcgfhmFOR45EyI8UiZMaJBlzan9BkzIcfRVqSSmU/KkIJrAuV3ZlF2ZkBEQm6srkgIxdOJXyTvDqc4umSyXY98uhHhSxzfybvklsr2Kzz9ujVmm3mXbALm6mesrsS6udYEx7ot87b4VrjgFe5e/dlk8v4ehfpfKPIFV5p/qEklYpLg3C4tfCnId49xHOncwVdHvqdDnxO6vKGvc4sePVqc0afDa/l26eH4mi5nHMujI7y4a0sxZ/yA4xs6siljR9afxcQifiYzdefiOFMdUzL1vGTuqdZIFd59wuUOpRvqyOUz0B6Vlk7zS7RnASNTRSaGU/VyqY3c+heaIqaqpZzt7X25DXPbveUW35Bqh0u1LjiVk1swet9UvXc0c60fj4CQlAtZDEiZ0qDgRrzPCbgixnGs7p1oSwpaK58yz41UEjEVgw6J4szI9Dcw3fjGfbChe2dvSSj/kunlqqr7ZHHq1e2M3qh7yzvfuhytTaBhU03X1DQQ18S0H2mn1vn78s31uqU85YiUmPBfL8AzPJrsc8AhY2UY6GZur0NTL0STlxyq+ksiWQ2l58giHODxnAMOeMnzd/q4ZOKMi1txWc/d4pgjuhx+UBUL+y5HvF59+/+sv4tpU7U4nq5OL+49xSd3UOsX2rPb97KniZWTmFu02604I2BacnG76zW5x3j/AAAA//8BAAD///S3T1F4nGJgZgCD/+cYjBiwAAAAAAD//wEAAP//LwECAwAAAA==");
}
.d2-62264228 .text-italic {
font-family: "d2-62264228-font-italic";
}
@font-face {
font-family: d2-62264228-font-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-62264228 .fill-N1{fill:#0A0F25;}
.d2-62264228 .fill-N2{fill:#676C7E;}
.d2-62264228 .fill-N3{fill:#9499AB;}
.d2-62264228 .fill-N4{fill:#CFD2DD;}
.d2-62264228 .fill-N5{fill:#DEE1EB;}
.d2-62264228 .fill-N6{fill:#EEF1F8;}
.d2-62264228 .fill-N7{fill:#FFFFFF;}
.d2-62264228 .fill-B1{fill:#0D32B2;}
.d2-62264228 .fill-B2{fill:#0D32B2;}
.d2-62264228 .fill-B3{fill:#E3E9FD;}
.d2-62264228 .fill-B4{fill:#E3E9FD;}
.d2-62264228 .fill-B5{fill:#EDF0FD;}
.d2-62264228 .fill-B6{fill:#F7F8FE;}
.d2-62264228 .fill-AA2{fill:#4A6FF3;}
.d2-62264228 .fill-AA4{fill:#EDF0FD;}
.d2-62264228 .fill-AA5{fill:#F7F8FE;}
.d2-62264228 .fill-AB4{fill:#EDF0FD;}
.d2-62264228 .fill-AB5{fill:#F7F8FE;}
.d2-62264228 .stroke-N1{stroke:#0A0F25;}
.d2-62264228 .stroke-N2{stroke:#676C7E;}
.d2-62264228 .stroke-N3{stroke:#9499AB;}
.d2-62264228 .stroke-N4{stroke:#CFD2DD;}
.d2-62264228 .stroke-N5{stroke:#DEE1EB;}
.d2-62264228 .stroke-N6{stroke:#EEF1F8;}
.d2-62264228 .stroke-N7{stroke:#FFFFFF;}
.d2-62264228 .stroke-B1{stroke:#0D32B2;}
.d2-62264228 .stroke-B2{stroke:#0D32B2;}
.d2-62264228 .stroke-B3{stroke:#E3E9FD;}
.d2-62264228 .stroke-B4{stroke:#E3E9FD;}
.d2-62264228 .stroke-B5{stroke:#EDF0FD;}
.d2-62264228 .stroke-B6{stroke:#F7F8FE;}
.d2-62264228 .stroke-AA2{stroke:#4A6FF3;}
.d2-62264228 .stroke-AA4{stroke:#EDF0FD;}
.d2-62264228 .stroke-AA5{stroke:#F7F8FE;}
.d2-62264228 .stroke-AB4{stroke:#EDF0FD;}
.d2-62264228 .stroke-AB5{stroke:#F7F8FE;}
.d2-62264228 .background-color-N1{background-color:#0A0F25;}
.d2-62264228 .background-color-N2{background-color:#676C7E;}
.d2-62264228 .background-color-N3{background-color:#9499AB;}
.d2-62264228 .background-color-N4{background-color:#CFD2DD;}
.d2-62264228 .background-color-N5{background-color:#DEE1EB;}
.d2-62264228 .background-color-N6{background-color:#EEF1F8;}
.d2-62264228 .background-color-N7{background-color:#FFFFFF;}
.d2-62264228 .background-color-B1{background-color:#0D32B2;}
.d2-62264228 .background-color-B2{background-color:#0D32B2;}
.d2-62264228 .background-color-B3{background-color:#E3E9FD;}
.d2-62264228 .background-color-B4{background-color:#E3E9FD;}
.d2-62264228 .background-color-B5{background-color:#EDF0FD;}
.d2-62264228 .background-color-B6{background-color:#F7F8FE;}
.d2-62264228 .background-color-AA2{background-color:#4A6FF3;}
.d2-62264228 .background-color-AA4{background-color:#EDF0FD;}
.d2-62264228 .background-color-AA5{background-color:#F7F8FE;}
.d2-62264228 .background-color-AB4{background-color:#EDF0FD;}
.d2-62264228 .background-color-AB5{background-color:#F7F8FE;}
.d2-62264228 .color-N1{color:#0A0F25;}
.d2-62264228 .color-N2{color:#676C7E;}
.d2-62264228 .color-N3{color:#9499AB;}
.d2-62264228 .color-N4{color:#CFD2DD;}
.d2-62264228 .color-N5{color:#DEE1EB;}
.d2-62264228 .color-N6{color:#EEF1F8;}
.d2-62264228 .color-N7{color:#FFFFFF;}
.d2-62264228 .color-B1{color:#0D32B2;}
.d2-62264228 .color-B2{color:#0D32B2;}
.d2-62264228 .color-B3{color:#E3E9FD;}
.d2-62264228 .color-B4{color:#E3E9FD;}
.d2-62264228 .color-B5{color:#EDF0FD;}
.d2-62264228 .color-B6{color:#F7F8FE;}
.d2-62264228 .color-AA2{color:#4A6FF3;}
.d2-62264228 .color-AA4{color:#EDF0FD;}
.d2-62264228 .color-AA5{color:#F7F8FE;}
.d2-62264228 .color-AB4{color:#EDF0FD;}
.d2-62264228 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-62264228);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-62264228);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-62264228);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-62264228);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-62264228);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-62264228);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-62264228);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-62264228);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="Y29yZQ=="><g class="shape" ><rect x="527.000000" y="97.000000" width="189.000000" height="82.000000" rx="8.000000" stroke="#3060c0" fill="#1a2040" style="stroke-width:2;" /></g><text x="621.500000" y="135.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="621.500000" dy="0.000000">Core</tspan><tspan x="621.500000" dy="18.500000">25 systems · 14 hubs</tspan></text></g><g class="bm9ydGhyZWFjaA=="><g class="shape" ><rect x="1345.000000" y="92.000000" width="181.000000" height="82.000000" rx="8.000000" stroke="#4a9060" fill="#1a2820" style="stroke-width:2;" /></g><text x="1435.500000" y="130.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1435.500000" dy="0.000000">North Reach</tspan><tspan x="1435.500000" dy="18.500000">50 systems · 2 hubs</tspan></text></g><g class="d2VzdHJlYWNo"><g class="shape" ><rect x="1749.000000" y="102.000000" width="181.000000" height="82.000000" rx="8.000000" stroke="#907030" fill="#201e14" style="stroke-width:2;" /></g><text x="1839.500000" y="140.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1839.500000" dy="0.000000">West Reach</tspan><tspan x="1839.500000" dy="18.500000">50 systems · 2 hubs</tspan></text></g><g class="c291dGhyZWFjaA=="><g class="shape" ><rect x="1345.000000" y="351.000000" width="181.000000" height="82.000000" rx="8.000000" stroke="#905030" fill="#201814" style="stroke-width:2;" /></g><text x="1435.500000" y="389.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1435.500000" dy="0.000000">South Reach</tspan><tspan x="1435.500000" dy="18.500000">50 systems · 2 hubs</tspan></text></g><g class="ZWFzdHJlYWNo"><g class="shape" ><rect x="940.000000" y="295.000000" width="181.000000" height="82.000000" rx="8.000000" stroke="#4070a0" fill="#1a2028" style="stroke-width:2;" /></g><text x="1030.500000" y="333.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1030.500000" dy="0.000000">East Reach</tspan><tspan x="1030.500000" dy="18.500000">50 systems · 3 hubs</tspan></text></g><g class="ZGVlcGZyb250aWVy"><g class="shape" ><rect x="531.000000" y="239.000000" width="181.000000" height="82.000000" rx="8.000000" stroke="#803030" fill="#201010" style="stroke-width:2;" /></g><text x="621.500000" y="277.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="621.500000" dy="0.000000">Deep Frontier</tspan><tspan x="621.500000" dy="18.500000">75 systems · 0 hubs</tspan></text></g><g class="Z2F0ZXdheV9ub3Rl"><g class="shape" ><path d="M 83 79 L 0 137 L 83 196 L 248 196 L 330 137 L 248 79 Z" stroke="#5090e0" fill="#1a2850" style="stroke-width:3;" /></g><text x="165.000000" y="127.000000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="165.000000" dy="0.000000">GATEWAY (S-001)</tspan><tspan x="165.000000" dy="17.666667">Diplomatic Periphery · Core</tspan><tspan x="165.000000" dy="17.666667">Sol aperture: dormant</tspan></text></g><g class="KGdhdGV3YXlfbm90ZSAtJmd0OyBjb3JlKVswXQ=="><marker id="mk-d2-62264228-4153826479" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#5090e0" class="connection" stroke-width="2" /> </marker><path d="M 331.499992 137.993719 C 408.600006 137.800003 448.299988 137.750000 523.500000 137.750000" stroke="#5090e0" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:6.000000,5.919384;" marker-end="url(#mk-d2-62264228-4153826479)" mask="url(#d2-62264228)" /><text x="428.500000" y="143.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">located in</text></g><g class="KGNvcmUgLS0gZWFzdHJlYWNoKVswXQ=="><path d="M 673.555882 180.256674 C 796.799988 279.799988 850.400024 308.399994 938.022648 321.699866" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="793.000000" y="282.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">3 connections</text></g><g class="KGNvcmUgLS0gbm9ydGhyZWFjaClbMF0="><path d="M 717.977352 123.949866 C 805.599976 110.650002 868.500000 107.250000 929.250000 107.250000 C 990.000000 107.250000 1255.400024 110.050003 1343.015444 121.001931" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1030.000000" y="113.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">3 connections</text></g><g class="KGNvcmUgLS0gc291dGhyZWFjaClbMF0="><path d="M 703.777427 179.916927 C 802.799988 231.000000 868.500000 244.000000 929.250000 244.000000 C 990.000000 244.000000 1262.260986 265.350006 1377.691346 349.571170" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1048.000000" y="254.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">3 connections</text></g><g class="KGNvcmUgLS0gd2VzdHJlYWNoKVswXQ=="><path d="M 689.736674 95.700767 C 800.005981 27.750000 868.500000 10.500000 929.250000 10.500000 C 990.000000 10.500000 1071.000000 10.500000 1131.750000 10.500000 C 1192.500000 10.500000 1273.500000 10.500000 1334.250000 10.500000 C 1395.000000 10.500000 1665.350952 28.700001 1775.082727 100.405948" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1233.000000" y="16.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">3 connections</text></g><g class="KGRlZXBmcm9udGllciAtLSBlYXN0cmVhY2gpWzBd"><path d="M 713.848034 318.764704 C 804.799988 356.399994 850.400024 362.600006 938.022648 349.300134" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="823.000000" y="364.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">2 connections</text></g><g class="KGRlZXBmcm9udGllciAtLSBub3J0aHJlYWNoKVswXQ=="><path d="M 710.820045 237.901464 C 804.200989 194.149994 868.500000 183.000000 929.250000 183.000000 C 990.000000 183.000000 1255.400024 177.399994 1343.059715 155.485071" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1023.000000" y="188.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">2 connections</text></g><g class="KGRlZXBmcm9udGllciAtLSBzb3V0aHJlYWNoKVswXQ=="><path d="M 680.629681 322.159370 C 798.200012 405.799988 868.500000 427.000000 929.250000 427.000000 C 990.000000 427.000000 1255.400024 423.200012 1343.028172 408.334507" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="998.000000" y="432.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">2 connections</text></g><g class="KGRlZXBmcm9udGllciAtLSB3ZXN0cmVhY2gpWzBd"><path d="M 659.934794 237.266883 C 794.117981 88.948997 868.500000 51.500000 929.250000 51.500000 C 990.000000 51.500000 1071.000000 51.500000 1131.750000 51.500000 C 1192.500000 51.500000 1273.500000 51.500000 1334.250000 51.500000 C 1395.000000 51.500000 1659.800049 61.546001 1747.176494 100.908526" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1171.000000" y="57.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">2 connections</text></g><g class="KGVhc3RyZWFjaCAtLSBub3J0aHJlYWNoKVswXQ=="><path d="M 1100.266094 293.467897 C 1206.109985 229.699997 1255.400024 204.500000 1343.144192 169.245637" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1217.500000" y="229.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">1 connections</text></g><g class="KGVhc3RyZWFjaCAtLSBzb3V0aHJlYWNoKVswXQ=="><path d="M 1101.268349 378.528351 C 1206.310059 441.500000 1255.400024 450.299988 1343.095943 422.112018" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1215.500000" y="449.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">1 connections</text></g><g class="KG5vcnRocmVhY2ggLS0gd2VzdHJlYWNoKVswXQ=="><path d="M 1527.500000 132.500000 C 1615.099976 132.500000 1659.900024 133.699997 1747.502864 138.393010" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1637.500000" y="139.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">1 connections</text></g><g class="KHNvdXRocmVhY2ggLS0gd2VzdHJlYWNoKVswXQ=="><path d="M 1527.500000 391.750000 C 1615.099976 391.750000 1671.099976 350.149994 1804.243326 185.305882" stroke="#6a7a40" fill="none" class="connection" style="stroke-width:2;" mask="url(#d2-62264228)" /><text x="1688.500000" y="334.000000" fill="#c8d0e0" class="text-italic" style="text-anchor:middle;font-size:16px">1 connections</text></g><mask id="d2-62264228" maskUnits="userSpaceOnUse" x="-102" y="-100" width="2133" height="654">
<rect x="-102" y="-100" width="2133" height="654" fill="white"></rect>
<rect x="394.000000" y="127.000000" width="69" height="21" fill="black"></rect>
<rect x="745.000000" y="266.000000" width="96" height="21" fill="black"></rect>
<rect x="982.000000" y="97.000000" width="96" height="21" fill="black"></rect>
<rect x="1000.000000" y="238.000000" width="96" height="21" fill="black"></rect>
<rect x="1185.000000" y="0.000000" width="96" height="21" fill="black"></rect>
<rect x="775.000000" y="348.000000" width="96" height="21" fill="black"></rect>
<rect x="975.000000" y="172.000000" width="96" height="21" fill="black"></rect>
<rect x="950.000000" y="416.000000" width="96" height="21" fill="black"></rect>
<rect x="1123.000000" y="41.000000" width="96" height="21" fill="black"></rect>
<rect x="1170.000000" y="213.000000" width="95" height="21" fill="black"></rect>
<rect x="1168.000000" y="433.000000" width="95" height="21" fill="black"></rect>
<rect x="1590.000000" y="123.000000" width="95" height="21" fill="black"></rect>
<rect x="1641.000000" y="318.000000" width="95" height="21" fill="black"></rect>
</mask></svg></svg>