orbit/data
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
..
research
…
actionbar.json
…
asteroids.json
…
builds.json
…
classes.json
…
combat.json Add Mindweave bullet homing and all-hostile ability targeting 2026-09-30 17:54:03 -06:00
comms.json
…
creditshud.json
…
economy.json
…
factions.json
…
galaxy.json
…
game.json
…
gates.json Tune jumpgate activation research duration to 20 s 2026-09-30 15:36:27 -06:00
goods.json
…
landing.json
…
manifest.json
…
map.json
…
menu.json
…
mineralhud.json
…
music.json
…
naming.json
…
planets.json
…
progression.json
…
quests.json
…
reputation.json
…
research.json
…
save.json
…
scan.json
…
settlements.json
…
sfx.json
…
ship.json
…
shipScreen.json Read live armor from the persistent combat ledger 2026-09-30 18:53:41 -06:00
shopui.json
…
sidequests.json Add per-faction job board voice pools with grammar linting 2026-10-01 07:24:49 -06:00
signalCompass.json
…
skills.json
…
stations.json
…
systems.json
…
tether.json
…
theme.json
…
vignettes.json
…