// Spawn atlas sources — the SHARD half (docs/link/v8.md §10, protocol 8 phase 7). // // `spawnAtlasSource.js` reads a ServUO tree off a filesystem and has done since // the atlas existed. That is the half this replaces, and it is worth being blunt // about what was wrong with it: `SPAWN_ATLAS.md` required the WEBSITE to be able // to read the shard's directories — "the same host, a bind mount, or a shared // volume". Everything else about this platform holds that only the sidecar // bridges the shard, and that one requirement broke the rule using the component // that faces the internet. // // So the shard now serves its own files over the same request/reply path as // every other shard read, and `SERVUO_PATH` becomes what it should always have // been: the development and same-host convenience, not the design. // // **The parsers do not move.** `spawnAtlasParse.js` is pure, fs-free and covered // by CI without a ServUO tree anywhere near it, and every quirk it handles — the // two respawn delay units, `:OBJ=` splitting, facet-name reconciliation, the // XmlSpawner directive stripping — stays exactly where it is. The shard sends // bytes; the website still decides what they mean. // // ── Why a file arrives in pieces ────────────────────────────────────────── // // §10 said the shard would serve `tree/