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>
113 lines
43 KiB
XML
113 lines
43 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 4747 1002"><svg class="d2-1705297072 d2-svg" width="4747" height="1002" viewBox="-91 -149 4747 1002"><rect x="-91.000000" y="-149.000000" width="4747.000000" height="1002.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
|
.d2-1705297072 .text {
|
|
font-family: "d2-1705297072-font-regular";
|
|
}
|
|
@font-face {
|
|
font-family: d2-1705297072-font-regular;
|
|
src: url("data:application/font-woff;base64,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");
|
|
}
|
|
.d2-1705297072 .text-bold {
|
|
font-family: "d2-1705297072-font-bold";
|
|
}
|
|
@font-face {
|
|
font-family: d2-1705297072-font-bold;
|
|
src: url("data:application/font-woff;base64,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");
|
|
}
|
|
.d2-1705297072 .text-italic {
|
|
font-family: "d2-1705297072-font-italic";
|
|
}
|
|
@font-face {
|
|
font-family: d2-1705297072-font-italic;
|
|
src: url("data:application/font-woff;base64,d09GRgABAAAAABccAAoAAAAAIuQAARhRAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgW1SVeGNtYXAAAAFUAAAA1AAAASxHcOopZ2x5ZgAAAigAAA+XAAAWHH2ooXBoZWFkAAARwAAAADYAAAA2G7Ur2mhoZWEAABH4AAAAJAAAACQLeAjuaG10eAAAEhwAAAD+AAABKIVaBpdsb2NhAAATHAAAAJYAAACW2KTTJG1heHAAABO0AAAAIAAAACAAYgD2bmFtZQAAE9QAAAMmAAAIMgntVzNwb3N0AAAW/AAAACAAAAAg/8YAMgADAeEBkAAFAAACigJY//EASwKKAlgARAFeADIBIwAAAgsFAwMEAwkCBCAAAHcAAAADAAAAAAAAAABBREJPAAEAIP//Au7/BgAAA9gBESAAAZMAAAAAAeYClAAAACAAA3ichM/LLmthAAXgb7c9x61KqXuxldKqat3VvSRCYi7pzBuIoYGhN8JEhIH34El+yU6MrfGXrLUQSYuQlYlilMQyUmJlVTV1DS3nLl3ruHXvwUtcCIHEVNSsaGhqu3Cl48bdrwnfikaNyckTPsJ7eAuv4Tk8hc/w+FVJmv9KpO3IsVN79p1oWrNuw6Yt23bsaklJy/jnvy7devTqk9UvZ8CgvCHDCkaSLeMmTJpSNG3GrNicknkLyhYtqahaTl7VrWo4c+iAHwAAAP//AQAA//9Q+ieqeJx8eHtwG9d1/r13l1gSBEGCeBEQHgQW2CXxJHcBLEgQAEGQIAgCfD9kiS9JlmxKlETLpmxHsuNY+fknq7ECazzx1OPGbux24nETa+R0pkkcp7XTmLGrTB9K48S1Wj9CJ1IztjmonWTC3c7uAiSozuSf5Q64957zffc73zm7oAa4AEAn0BMAA3WgETQDPQCs1oFhLMeRRoylaZIgOFqrJVwPw/WHn8LT+37V9uzvfXZ88EsvDP/30ovoia0V+ND8F7/I7z9/+PDszZu8B/77TQAAQMJbAMCfoSKoAxoAtARLUxRNKhQQslqSJokPul9X4kocN7P8P8Hb9+XHm3+9DO9fXQ0djXbdwY+j4tbq1asAYIAEALWiItAAs3jPalnGoNcpFARhkP6SGMtEwiGK3Lkhz720uOJNuyCbGTw70r2wsG8gt//YqYUThaF7UDE36Ov31eKqVHRo3gdPD3J+ZuvGQJ6Ji3lD0CWUkB89DewA1DgpKhxKIJYxGAmKIp1qpNcZDCwT4YwKBXQO3xnp2PdAPjreEtFGqO7FPpczF2tLt5KueVX6vpHCE/cOcp72Vjp++309sflw6x7G7he5kTBFJG60VYhImmUiFQRfePSx6WdOzsxMn03fcSiCiv///nu/c7h36msH5pflPMU9mlAR1EtnRjgIliAJB0Geg0cb+A88n6o/ZiGlRsXUz/o+66t6vq7qeaz8tP/Thk96UDH1YR//88rey5W9WcyhZTFS68DIcyNR2BYtnBtJ8m8nUJG/CfVbqzDKr8trQAkVASavIc+NnBMPsZIrvISKoKa8H0GeGzkNdQ2ouHWlktsrqAhM0v+1RpaTIkYiHElgJCbqhsDIc/NdBjzz+vy54XydWYWP/oMvbsAV6tocKvJfP38eHtxahad8R72X+Ofh3CXfso+/WN77CCqWmdYa2UhE2n1715GveXCFWjkwfK7whBdXNCozqMjPPdp5nIVzW6vwucfYowz/jHRuPUIJLaCnQRNoldRRFodBr1Mjmkkg8exkkUD7ibXAzFomdzgUmLknHZ5NOHMj4nVI9eTZ4eLaQP+ZyeHH1wbSPQfXug6sxQ6udS+d3taGX+JeV60NEtPuyPu7c6dyX5paDqUWDx/NZw+jYm5m7I5O/ndwcGy0iwXlXBekXBuBDwD3ruSMToqmdiVPVFQNyapUP5+83zQ5W4bhHTnep5kONe5pqHGEY4dOd8tZHzz98/yY9qvHypiyXzk1pPB6cSxeX8ZCoyJoAIYdLISWxHah+c7cXScm755cOcX1H1q4fTi7hIqZyf0nNPwH0MDfgNMTmUhQ1rxKKEEePQ08AIgYOCnrcIiiJTiRyHahKhQiTKPsEB+lV9u6rNNcz7jfnffEwnOx2JKdNWUC7rC105UPhmJHVN3dXi/TH3UxhoB5iGMmmFBbwNZu79hDBQ1+yyDXvT8EIJgHAIVRERAiGpJzECT212uvNsC3Gn64hgrp9NbLcp6jQknSnKGsEklxYkoiyeKtAtpuP6bAcyPDdb0D0X368fyE5WHV8hF90ARX+Uf9zkxh7hi8xB+7eL+43wQAKCXxCFiM1RoMZRXDx2Kje2pqMdwUNv/tFP8CKvJPhI9HwidDcEUqPQDBIgCYDxWBQ649hYKQ12oNOn15FxILRTipGhbrxpQYhuPGDsPzg3UQ13l1Fwv85iECQVzt0LyMivyToZVweCUEl/knQ8cikWMhuLy1Ch93jdJ0nuZPijEFAQBklb2G5KCDcxDQQUAlfIG/poaPKvl9cLgxiFpTga3/6hO1Sgsl+Du4CXSiYozbdWVkORYjxcxoJsJx2w78cm/el1tg6bgG1yYOJGtxcm8zNery6RmLKx22d6r2T2fun2PbHHHenHUHewPBX1BOz9A8k4zLtWEXSvATtA70YgcUlUQSpJYlRGYkjVZVs9RnbtBxDaZLXizQBuSa8kvhw6502NbR7hwnAzpW1eaIo/VXl6zefTNi6F7P0DybiHvcH1FOAIFbKMErcBNYdqHbUWq5o7w9eruvcCDs6zH4tZS1YybS1d0aMTjNBdWR+f67p4NOU4dR37+a7suYNYzOLWOhhRKiq7DscPenyetuxpqoQrHM3oj7Vvbo1sVXt6K30ockLD+Em8AM3NXxpMp2KLa7I8ZKrUxE+OHMsn94roNL2VQ1/I/qWtMea5fRZh3/cwFhze1keEF19MDA6oQvMMZYWHVyzG3SsHo7dNe3NFg67dMAAi8A8DF0DRilukui6konpEbmnU7Wp5oaR+JmT/Me5R6No71Wc1B1aBp+s6tmPDfZUM8RSsY7meD3ipxBwQU34Sawg0C1k3CcQkHuVp9Cge1i78XOGdJlGWhL5NQmaioYH/MOzXVSCQ2mTR7R3t1Fjju9hk4LmWJtwf+grGGjM997J+WbmU7fcxsj6hFbPAIdXs8/U872zN6OWEyuUTsA8G20Xu5/OzokpCYYDokwMfvFQkcT3j7hS4RrE/keHM9asoEBtH4zTgZTUbuLfxP6dC0Nw54A/01BEPcEf0BXEAX6AQAKMJAFAAiC8GWBBp9Lv2fk3wd2cvgtWgcq2SfEPLQkTRD2i4Ul9Pu9r62NzK+a0TpvhfAt/le/PXUGQOATSuAPaB00iyyGQ7K16XVlCRxPKc4UHoBQgykIqDSokhoTOrb1OFGHNUMUw/HtuOgG3BQ9XYwpQzeWCVDsYqCajANJAqcmqe7OmuBedzyC44lCHMcH9VnfgMhNxpD1DsCNIVcn1+ZjU1GNTVfNz87dDv9wE7RU53Ar/WLE9onALvalCLeSv12X8B24CRqBtbpOZHORxzy5+K+NLvhyC8zoom94weMfZyOMeFHduX/g7umAfO3tW+3vG0yv9vdlpNn6M4GFn8BNueaJqozViJTcjNDu8i/lhaQCc08HpNJnqB4tarb/VbV/XUUv99r95cK33/kMhGUDo37tduzo4yzcBE1VHBkJqsJNPW7N+036PU1mV94ehxvzvnhdf20yxl8FUPijUIIPwE1A39q3b23bYteWm/ZznfOmDmMv5Ym3RwNdviFfIGcJaFkH1RlpTYQ6JlShNsreFiDNtN2caPem3C5bm87st9uoZmePz9/vFnPuEUpwL1rZ9t0IJ7oHKzlGle9+tzeEw67B+rwrteeM6oEuzOJUm+s1TUFV0t9oboDNXTWPPJLgbzQ322zKGo5oFPeOCiX4MdwQa9a40+PL6teWrffFbWVmrYO+gbzYrNqmVH2cxq6FEf6a1iRKBu7lzTmSlXmOAQDfgxv/t9c/PJh34Qoc17i0Xy3wW3CD/4gcJl1DLmjizfLaDADoDbgh9frqtTt3GInJ72EEtkzmmyCEeOOepoeGNUjs8OamL2bfXVRLv1obT8MN/n1nv9PZ74S2qjszVJJZlytL8p8BKFwDAP6rzAOppVljORTHEkay/M5HEL5f7h/x1KoJvLG1cXpy/dCor1ajxJuc2gWIPlwx0Hpdu37lfz49ZQgYDD7j3eIM8ZoQhB/ADWAGgJA0Ixn0LkbUSKFsVZuam90pU/NknhInIY27+St5/n1TLPsvBNFVF2dI+BH/saNAknkn1Gx9Giz4JK6EzwCA34Yb5RlFHOYgSyhrYfrdBhiv5X/Aq3zwbMLP/7+EXM8eoQR/ii4Ajciu0Un9ieF/nRl0e4aWwkzG1T602EmnQ1ZfQLqqoocSt/3l2cHuQ4l9z57JxPvvOt+fnh2463x/3yyAIlb4EHpQeu/ixAkzwrEYS5gb/mzpLuU0F7vnYVUvvM6onFuv9VYw/AhdENeRXAIrFzy9bQaEg1DWLl1cCLLh1pST9s12TOz1TJydhDpVYPzMwdsCvh6HvYNqv60/vLC0mu0T9/xcKMGfoAug7ZZaJblt1yLoijvr5WL9fuqwjTXmOvtnpw6rRvfTDGtNW+nJ+bHZ4Vw4Fl9WpfxtztBwF9vX3R63eSIWI5sc64vP6XFNlonf1inyKxbVVfQgUIrvPQ6Sc3BQxE66WS4iT6dwOEvyv6mDC1Njk6pJXvhHStFM4Lo23eUQfIpfTSR+YE05LKEWuRaA6L/oQfFNbQfHNgCtgyCJSpNRvJJasDKGVNST9SVDdl+rYwx6G34T0nhM2cX0CVXS3+4IeQpsoqdJY4b+vldqVdOT+ZNxSResUII30QX5PYvTVUdR6Iy7viCIhr8T9EyMoXpIljGNuuByZMzrHzveGx7QhZw9zGxS7ZhyDE5zi28OTAdzbVzKGaw3vh89kDz43L19na3t3ekzU5Rr70jiqKgDsAwAqkEPSr07gThx4FYj4j5r7uQ4/6YaXlQeOp023vfGt8b6mPlXfnwcAIABh1CCv0QXgB14QVdF0ZEIF972ZPmEbUhMVlsBpdcZMBkhRUvt63pgNurtpy220CzTPhTIcLo2S88Bq7sn6vFlEjZXb1t7mmb6hlSuoWhnLqzBLTGaK3haU0zvjB1vaI86uyf98HBLjgmGYmEmxn/PGm1zs+16y3CUK8/rTUIJvlHhWCv7diRUbqHaijtEKuNbJXs1eizEtIyRMMa4e1xNoQFdqDXBzCQbHJOOzDS3EONGRdbht2R+VSLXvL3DIdI74Sb3jiSXe7mDyQPP39sne8Z7whwoghWxB4pVxsnR5PPU1Qe7CGSwkVazZd/zgeYel9lgol22odXK95rrUAlNAANANEdS9U7D9cr8R4L30HVolP/nIMh6dLn+vUhEnNfAKFSBv4dfRgQYBFHYIj2fEsbgLHpHrBlj+diMCunblPELLQ7uzpz/6EqdTn2597mJtZ98f970CP+fXw8cWaJEDNeEMXCjvJaONEsHycllDP1Hj9U1NzLiFpfNj0DHXwSPLFLa3m9MrL35PXHt3wlL8Bvox2KeBGRhFl6J8oVnsSN/fEqaLUFcKKFP0LOABlkQgGpAgyG4DwBAgCy8DGSsHeAO+CbyiB7HhckwG2b1rJ7UX//2Sz0vXb7jja7XX+96Q3zOD3H4OrwkzvzQGUDbxmZDle9v+T0BmtIZSI3XlLTL964mrykJcbPTbG21BD3y34C3PL+Aq3Cj8n3KfqBwEG5IjROCQTQMrqArYk7aqiO9T2sjjToriYaNBpOjxWBqBVCan38KN0T+iJ03B6n3dxpJjUmpa7I4lCcLJ9XpXyjruhREpxe5tt7NzAAIjEIJnAcrYhxjVZyMwURbDC1ulcVg9lkNJp/kh0IJ9sJLoFHM/Nb5sbrbXOhOtQT7veI1TVt8tqZWt3RVzaaCc4XAbCowXwgw7sSQK9AjXyUt+4USHEDPVs7y3+CHId6iQn+zNQUA+F8AAAD//wEAAP//8tSj7gAAAQAAAAEYUUY4u/9fDzz1AAED6AAAAADYXaDMAAAAAN1mLzf+vf7dCB0DyQACAAMAAgAAAAAAAAABAAAD2P7vAAAIQP69/bwIHQPoAML/0QAAAAAAAAAAAAAASnicLM6hSoNRGIfx5/9+UWUDw6crBzluA+dAsCjOYNDFiQybmARFMFnsXoHRezBZjFOLIJhWBMPZBSgyZBMZe2Viep74s3MWeQKN/dmaRKuwbrtEDYl6JdoZkRFRL0S7J9op0S5oWOW/NaJ+mNaYAzumpU/27ItDw93mqdocQbeULaeqHmWVqNkssikC7wQ+/FJvBL5ZzgLBZgiWUbXcB9on6MpH2qZhRdbUYcMe2dGNd9XxB137QIklJUpKk/ehEgUlUGJViRMlFpQo0veeasRMRPq0FNlS2btq+12Ws6nEihL1PxM0Jy765DqiQNvrvwAAAP//AQAA//9SbU4wAAAAAAAuAC4AUgCKALwA3gD2AQwBJgE0AUQBcgGYAcoB7gIwAlgCmAKsAtQC8gMsA0QDfAO0A+IEGgRUBHwExATuBPoFBgUgBUIFhAWuBdwGFgY0BnAGngbKBugHIgdOB34HlgfIB+AICghGCG4IogjkCP4JVAmYCbYJxAnSCdwJ+goYCigKOgpOCnYKhAqaCrgKzgr+Cw4AAAABAAAASgCMAAwAZgAHAAEAAAAAAAAAAAAAAAAABAADeJyclNtOG1cUhj8H2216uqhQRG7QvkylZEyjECXhypSgjIpw6nF6kKpKgz0+iPHMyDOYkifodd+ib5GrPkafoup1tX8vgx1FQSAE/Hv2OvxrrX9tYJP/2KBWvwv83ZwbrrHd/NnwHb5oHhneYL/5meE6Dxv/GG4waLw13ORBo2v4E97V/zT8KU/qvxm+y1b90PDnPK5vGv5yw/Gv4a94wrsFrsEz/jBcY4vC8B02+dXwBvewmLU699gx3OBrtg032QZ6TKhImZAxwjFkwogzZiSURCTMmDAkYYAjpE1Kpa8ZsZBj9MGvMREVM2JFHFPhSIlIiSkZW8S38sp5rYxDnWZ216ZiTMyJPE6JyXDkjMjJSDhVnIqKghe0aFHSF9+CipKAkgkpATkzRrTocMgRPcZMKHEcKpJnFpEzpOKcWPmdWfjO9EnIKI3VGRkD8XTil8g75AhHh0K2q5GP1iI8xPGjvD23XLbfEujXrTBbz7tkEzNXP1N1JdXNuSY41q3P2+YH4YoXuFv1Z53J9T0a6H+lyCecaf4DTSoTkwzntmgTSUGRu49jX+eQSB35iZAer+jwhp7Obbp0aXNMj5CX8u3QxfEdHY45kEcovLg7lGKO+QXH94Sy8bET689iYgm/U5i6S3GcqY4phXrumQeqNVGFN5+w36F8TR2lfPraI2/pNL9MexYzMlUUYjhVL5faKK1/A1PEVLX42V7d+22Y2+4tt/iCXDvs1brg5Ce3YHTdVIP3NHOun4CYATknsuiTM6VFxYV4vybmjBTHgbr3SltS0b708XkupJKEqRiEZIozo9Df2HQTGff+mu6dvSUD+Xump5dV3SaLU6+uZvRG3VveRdblZGUCLZtqvqKmvrhmpv1EO7XKP5Jvqdct5xGh4i52+0OvwA7P2WWPsbL0dTO/vPOvhLfYUwdOSWQ1lKZ9DY8J2CXgKbvs8pyn7/VyycYZH7fGZzV/mwP26bB3bTUL2w77vFyL9vHMf4ntjupxPLo8Pbv1NB/cQLXfaN+u3s2uJuenMbdoV9txTMzUc3FbqzW5+wT/AwAA//8BAAD//3KhUUAAAAADAAD/9QAA/84AMgAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
|
}]]></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-1705297072 .fill-N1{fill:#0A0F25;}
|
|
.d2-1705297072 .fill-N2{fill:#676C7E;}
|
|
.d2-1705297072 .fill-N3{fill:#9499AB;}
|
|
.d2-1705297072 .fill-N4{fill:#CFD2DD;}
|
|
.d2-1705297072 .fill-N5{fill:#DEE1EB;}
|
|
.d2-1705297072 .fill-N6{fill:#EEF1F8;}
|
|
.d2-1705297072 .fill-N7{fill:#FFFFFF;}
|
|
.d2-1705297072 .fill-B1{fill:#0D32B2;}
|
|
.d2-1705297072 .fill-B2{fill:#0D32B2;}
|
|
.d2-1705297072 .fill-B3{fill:#E3E9FD;}
|
|
.d2-1705297072 .fill-B4{fill:#E3E9FD;}
|
|
.d2-1705297072 .fill-B5{fill:#EDF0FD;}
|
|
.d2-1705297072 .fill-B6{fill:#F7F8FE;}
|
|
.d2-1705297072 .fill-AA2{fill:#4A6FF3;}
|
|
.d2-1705297072 .fill-AA4{fill:#EDF0FD;}
|
|
.d2-1705297072 .fill-AA5{fill:#F7F8FE;}
|
|
.d2-1705297072 .fill-AB4{fill:#EDF0FD;}
|
|
.d2-1705297072 .fill-AB5{fill:#F7F8FE;}
|
|
.d2-1705297072 .stroke-N1{stroke:#0A0F25;}
|
|
.d2-1705297072 .stroke-N2{stroke:#676C7E;}
|
|
.d2-1705297072 .stroke-N3{stroke:#9499AB;}
|
|
.d2-1705297072 .stroke-N4{stroke:#CFD2DD;}
|
|
.d2-1705297072 .stroke-N5{stroke:#DEE1EB;}
|
|
.d2-1705297072 .stroke-N6{stroke:#EEF1F8;}
|
|
.d2-1705297072 .stroke-N7{stroke:#FFFFFF;}
|
|
.d2-1705297072 .stroke-B1{stroke:#0D32B2;}
|
|
.d2-1705297072 .stroke-B2{stroke:#0D32B2;}
|
|
.d2-1705297072 .stroke-B3{stroke:#E3E9FD;}
|
|
.d2-1705297072 .stroke-B4{stroke:#E3E9FD;}
|
|
.d2-1705297072 .stroke-B5{stroke:#EDF0FD;}
|
|
.d2-1705297072 .stroke-B6{stroke:#F7F8FE;}
|
|
.d2-1705297072 .stroke-AA2{stroke:#4A6FF3;}
|
|
.d2-1705297072 .stroke-AA4{stroke:#EDF0FD;}
|
|
.d2-1705297072 .stroke-AA5{stroke:#F7F8FE;}
|
|
.d2-1705297072 .stroke-AB4{stroke:#EDF0FD;}
|
|
.d2-1705297072 .stroke-AB5{stroke:#F7F8FE;}
|
|
.d2-1705297072 .background-color-N1{background-color:#0A0F25;}
|
|
.d2-1705297072 .background-color-N2{background-color:#676C7E;}
|
|
.d2-1705297072 .background-color-N3{background-color:#9499AB;}
|
|
.d2-1705297072 .background-color-N4{background-color:#CFD2DD;}
|
|
.d2-1705297072 .background-color-N5{background-color:#DEE1EB;}
|
|
.d2-1705297072 .background-color-N6{background-color:#EEF1F8;}
|
|
.d2-1705297072 .background-color-N7{background-color:#FFFFFF;}
|
|
.d2-1705297072 .background-color-B1{background-color:#0D32B2;}
|
|
.d2-1705297072 .background-color-B2{background-color:#0D32B2;}
|
|
.d2-1705297072 .background-color-B3{background-color:#E3E9FD;}
|
|
.d2-1705297072 .background-color-B4{background-color:#E3E9FD;}
|
|
.d2-1705297072 .background-color-B5{background-color:#EDF0FD;}
|
|
.d2-1705297072 .background-color-B6{background-color:#F7F8FE;}
|
|
.d2-1705297072 .background-color-AA2{background-color:#4A6FF3;}
|
|
.d2-1705297072 .background-color-AA4{background-color:#EDF0FD;}
|
|
.d2-1705297072 .background-color-AA5{background-color:#F7F8FE;}
|
|
.d2-1705297072 .background-color-AB4{background-color:#EDF0FD;}
|
|
.d2-1705297072 .background-color-AB5{background-color:#F7F8FE;}
|
|
.d2-1705297072 .color-N1{color:#0A0F25;}
|
|
.d2-1705297072 .color-N2{color:#676C7E;}
|
|
.d2-1705297072 .color-N3{color:#9499AB;}
|
|
.d2-1705297072 .color-N4{color:#CFD2DD;}
|
|
.d2-1705297072 .color-N5{color:#DEE1EB;}
|
|
.d2-1705297072 .color-N6{color:#EEF1F8;}
|
|
.d2-1705297072 .color-N7{color:#FFFFFF;}
|
|
.d2-1705297072 .color-B1{color:#0D32B2;}
|
|
.d2-1705297072 .color-B2{color:#0D32B2;}
|
|
.d2-1705297072 .color-B3{color:#E3E9FD;}
|
|
.d2-1705297072 .color-B4{color:#E3E9FD;}
|
|
.d2-1705297072 .color-B5{color:#EDF0FD;}
|
|
.d2-1705297072 .color-B6{color:#F7F8FE;}
|
|
.d2-1705297072 .color-AA2{color:#4A6FF3;}
|
|
.d2-1705297072 .color-AA4{color:#EDF0FD;}
|
|
.d2-1705297072 .color-AA5{color:#F7F8FE;}
|
|
.d2-1705297072 .color-AB4{color:#EDF0FD;}
|
|
.d2-1705297072 .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-1705297072);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1705297072);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1705297072);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1705297072);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1705297072);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1705297072);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1705297072);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1705297072);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="enN0YWNr"><g class="shape" ><rect x="10.000000" y="20.000000" width="3745.000000" height="174.000000" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /></g><text x="1882.500000" y="-21.000000" fill="#c8d0e0" class="text" style="text-anchor:middle;font-size:28px"><tspan x="1882.500000" dy="0.000000">Rendering Z-Stack (D-049)</tspan><tspan x="1882.500000" dy="32.000000">8 layers — bottom to top</tspan></text></g><g class="aW5zZXJ0X292ZXJsYXk="><g class="shape" ><rect x="1184.000000" y="355.000000" width="1316.000000" height="158.000000" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /></g><text x="1842.000000" y="342.000000" fill="#c8d0e0" class="text" style="text-anchor:middle;font-size:28px">Insert Overlay Design (D-048)</text></g><g class="ZGlhbG9ndWVfYm94"><g class="shape" ><rect x="2540.000000" y="363.000000" width="2015.000000" height="142.000000" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /></g><text x="3547.500000" y="350.000000" fill="#c8d0e0" class="text" style="text-anchor:middle;font-size:28px">Dialogue Box (D-061, D-076)</text></g><g class="bW9ub2xvZ3VlX3Bvc2l0aW9u"><g class="shape" ><rect x="3421.000000" y="654.000000" width="312.000000" height="98.000000" rx="4.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="3577.000000" y="692.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="3577.000000" dy="0.000000">Monologue floats ABOVE dialogue box</tspan><tspan x="3577.000000" dy="17.666667">(z-layer 7 — spatial separation</tspan><tspan x="3577.000000" dy="17.666667">character thinks while NPC speaks)</tspan></text></g><g class="enN0YWNrLmww"><g class="shape" ><rect x="40.000000" y="66.000000" width="291.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="185.500000" y="104.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="185.500000" dy="0.000000">Layer 0 — Floor Tiles</tspan><tspan x="185.500000" dy="18.500000">(zone identity · movement surface)</tspan></text></g><g class="enN0YWNrLmwx"><g class="shape" ><rect x="391.000000" y="66.000000" width="216.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="499.000000" y="104.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="499.000000" dy="0.000000">Layer 1 — Floor Objects</tspan><tspan x="499.000000" dy="18.500000">(cosmetic · walked over)</tspan></text></g><g class="enN0YWNrLmwy"><g class="shape" ><rect x="667.000000" y="66.000000" width="297.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="815.500000" y="104.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="815.500000" dy="0.000000">Layer 2 — Furniture / Placed Objects</tspan><tspan x="815.500000" dy="18.500000">(y-sorted with entities)</tspan></text></g><g class="enN0YWNrLmwz"><g class="shape" ><rect x="1024.000000" y="58.000000" width="292.000000" height="98.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="1170.000000" y="96.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1170.000000" dy="0.000000">Layer 3 — Entity Sprites</tspan><tspan x="1170.000000" dy="17.666667">(y-sorted · D-033 relationship color</tspan><tspan x="1170.000000" dy="17.666667">24x32px footprint in 64x64 tile)</tspan></text></g><g class="enN0YWNrLmw0"><g class="shape" ><rect x="1376.000000" y="58.000000" width="295.000000" height="98.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1523.500000" y="96.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1523.500000" dy="0.000000">Layer 4 — Overhead / Wall Tops</tspan><tspan x="1523.500000" dy="17.666667">(pipes · ducts · fixtures · signage</tspan><tspan x="1523.500000" dy="17.666667">semi-transparent partial occlusion)</tspan></text></g><g class="enN0YWNrLmw1"><g class="shape" ><rect x="1731.000000" y="58.000000" width="258.000000" height="98.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="1860.000000" y="96.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1860.000000" dy="0.000000">Layer 5 — Fog of Perception</tspan><tspan x="1860.000000" dy="17.666667">(vision cone mask · fog shader</tspan><tspan x="1860.000000" dy="17.666667">affects layers 0-4)</tspan></text></g><g class="enN0YWNrLmw2"><g class="shape" ><rect x="2125.000000" y="50.000000" width="260.000000" height="114.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="2255.000000" y="88.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2255.000000" dy="0.000000">Layer 6 — Insert Overlay</tspan><tspan x="2255.000000" dy="17.250000">(lattice HUD · bloom-rendered</tspan><tspan x="2255.000000" dy="17.250000">NOT affected by fog</tspan><tspan x="2255.000000" dy="17.250000">Interaction labels render here)</tspan></text></g><g class="enN0YWNrLmw3"><g class="shape" ><rect x="3429.000000" y="58.000000" width="296.000000" height="98.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="3577.000000" y="96.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="3577.000000" dy="0.000000">Layer 7 — Monologue / UI</tspan><tspan x="3577.000000" dy="17.666667">(always visible · top of stack</tspan><tspan x="3577.000000" dy="17.666667">Dialogue box and response options)</tspan></text></g><g class="aW5zZXJ0X292ZXJsYXkuYmxvb20="><g class="shape" ><rect x="1214.000000" y="393.000000" width="253.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1340.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1340.500000" dy="0.000000">Soft bloom shader</tspan><tspan x="1340.500000" dy="18.500000">~2-3px gaussian · ~40% blend</tspan></text></g><g class="aW5zZXJ0X292ZXJsYXkuc211Z2dsZXJfb3ZlcmxheQ=="><g class="shape" ><rect x="1527.000000" y="393.000000" width="284.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1669.000000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1669.000000" dy="0.000000">Smuggler</tspan><tspan x="1669.000000" dy="18.500000">thinner · sparser (baseline lattice)</tspan></text></g><g class="aW5zZXJ0X292ZXJsYXkuZGV0ZWN0aXZlX292ZXJsYXk="><g class="shape" ><rect x="1871.000000" y="393.000000" width="297.000000" height="82.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="2019.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2019.500000" dy="0.000000">Detective</tspan><tspan x="2019.500000" dy="18.500000">denser · crisper (augmented lattice)</tspan></text></g><g class="aW5zZXJ0X292ZXJsYXkuaW5zZXJ0X29mZg=="><g class="shape" ><rect x="2228.000000" y="385.000000" width="242.000000" height="98.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" /></g><text x="2349.000000" y="423.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2349.000000" dy="0.000000">Insert OFF behavior (OQ-07)</tspan><tspan x="2349.000000" dy="17.666667">Cursor shape changes</tspan><tspan x="2349.000000" dy="17.666667">Interaction labels hidden</tspan></text></g><g class="ZGlhbG9ndWVfYm94LnBvc2l0aW9u"><g class="shape" ><rect x="2570.000000" y="393.000000" width="165.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="2652.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2652.500000" dy="0.000000">Bottom of screen</tspan><tspan x="2652.500000" dy="18.500000">max 20% height</tspan></text></g><g class="ZGlhbG9ndWVfYm94Lm1heF93aWR0aA=="><g class="shape" ><rect x="2795.000000" y="393.000000" width="240.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="2915.000000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2915.000000" dy="0.000000">Max-width 1200px</tspan><tspan x="2915.000000" dy="18.500000">(centered · ~62% of 1920px)</tspan></text></g><g class="ZGlhbG9ndWVfYm94LmxvZw=="><g class="shape" ><rect x="3095.000000" y="393.000000" width="301.000000" height="82.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="3245.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="3245.500000" dy="0.000000">Unified conversation log</tspan><tspan x="3245.500000" dy="18.500000">(active + overheard — chronological)</tspan></text></g><g class="ZGlhbG9ndWVfYm94LnNwZWFrZXJfZm9ybWF0"><g class="shape" ><rect x="3456.000000" y="393.000000" width="241.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="3576.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="3576.500000" dy="0.000000">Speaker to Target format</tspan><tspan x="3576.500000" dy="18.500000">per-character name colours</tspan></text></g><g class="ZGlhbG9ndWVfYm94LnJlc3BvbnNlcw=="><g class="shape" ><rect x="3757.000000" y="393.000000" width="241.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="3877.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="3877.500000" dy="0.000000">Response options below log</tspan><tspan x="3877.500000" dy="18.500000">max 3 visible</tspan></text></g><g class="ZGlhbG9ndWVfYm94Lm5vX3BvcnRyYWl0cw=="><g class="shape" ><rect x="4058.000000" y="393.000000" width="170.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="4143.000000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="4143.000000" dy="0.000000">No portraits</tspan><tspan x="4143.000000" dy="18.500000">(NPC is on screen)</tspan></text></g><g class="ZGlhbG9ndWVfYm94LnRpbWVvdXQ="><g class="shape" ><rect x="4288.000000" y="393.000000" width="237.000000" height="82.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="4406.500000" y="431.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="4406.500000" dy="0.000000">Entry timeout</tspan><tspan x="4406.500000" dy="18.500000">15s + 3s fade (configurable)</tspan></text></g><g class="KHpzdGFjay5sNSAtJmd0OyBpbnNlcnRfb3ZlcmxheSlbMF0="><marker id="mk-d2-1705297072-1961329247" 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="#c8d8f0" class="connection" stroke-width="2" /> </marker><path d="M 1860.000000 158.000000 C 1860.000000 202.399994 1860.000000 282.500000 1860.000000 310.500000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" marker-end="url(#mk-d2-1705297072-1961329247)" mask="url(#d2-1705297072)" /><text x="1860.000000" y="241.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">does NOT affect</text></g><g class="KHpzdGFjay5sNiAtJmd0OyBpbnNlcnRfb3ZlcmxheSlbMF0="><path d="M 2254.750000 166.000000 C 2254.750000 204.000000 2254.750000 290.700012 2254.750000 351.500000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-1705297072-1961329247)" mask="url(#d2-1705297072)" /><text x="2255.000000" y="265.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">rendered at</text></g><g class="KHpzdGFjay5sNyAtJmd0OyBkaWFsb2d1ZV9ib3gpWzBd"><path d="M 3576.500000 158.000000 C 3576.500000 202.399994 3576.500000 284.100006 3576.500000 318.500000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-1705297072-1961329247)" mask="url(#d2-1705297072)" /><text x="3577.000000" y="245.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">rendered at</text></g><g class="KGRpYWxvZ3VlX2JveCAtJmd0OyBtb25vbG9ndWVfcG9zaXRpb24pWzBd"><path d="M 3576.500000 506.500000 C 3576.500000 575.700012 3576.500000 605.700012 3576.500000 650.500000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-1705297072-1961329247)" mask="url(#d2-1705297072)" /><text x="3576.500000" y="585.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">monologue above</text></g><mask id="d2-1705297072" maskUnits="userSpaceOnUse" x="-91" y="-149" width="4747" height="1002">
|
|
<rect x="-91" y="-149" width="4747" height="1002" fill="white"></rect>
|
|
<rect x="1806.000000" y="225.000000" width="108" height="21" fill="black"></rect>
|
|
<rect x="2214.000000" y="249.000000" width="82" height="21" fill="black"></rect>
|
|
<rect x="3536.000000" y="229.000000" width="82" height="21" fill="black"></rect>
|
|
<rect x="3515.000000" y="569.000000" width="123" height="21" fill="black"></rect>
|
|
</mask></svg></svg>
|