orbit/docs
Brian Fertig 2eb2d46ba4 Add per-faction job board voice pools with grammar linting
- 180 new side-quest descriptions (9 pools × 20) in data/sidequests.json:
  Apex, MindWeave, and Zenith each post patrol/bounty/escort copy in their
  own doctrine voice, every body naming the seeded rival via {enemy}
- descriptionPool() in SideQuests.js now chains faction's own pool → shared
  war-voice pool → neutral fallback; neutral boards never read war copy
- New dev/lib/faction-voice-lint.mjs catches article disagreement ("an Apex
  hull"), doubled words, and unresolved braces across every rival resolution
- dev/jobboard-voice-shot.mjs renders all 180 listings through the real
  JobBoardWindow panel, asserting no clipping, overflow, or grammar faults
- Updated sidequests/jobboard tests to assert pool counts, {enemy} presence,
  dossier uniqueness, fallback chain, and zero brace leaks
- Documented the pool structure in README and PROJECT_NOTES
2026-10-01 07:24:49 -06:00
..
ECONOMY.md
…
PROJECT_NOTES.md Add per-faction job board voice pools with grammar linting 2026-10-01 07:24:49 -06:00