- dedicated scripts/cv/vite-node.config.ts: the root config's opencv-js
optimizeDeps entry would hand vite-node the browser prebundle (crashes
on __dirname); this config externalizes it to the patched CJS bundle
- atlas builders read/write the local assets checkout (CV_ASSETS_DIR);
fonts from the repo-root assets/fonts (gitignored)
- build-planner-signatures reads the assets repo's planner-maps with a
filename adapter (<stageId>-<MODE>-<TYPE>.png); the MINI variant
reproduces the committed signature atlas byte-identically
- build-localized-entries emits the id-keyed snap tables (StageId/
ModeShort/CvLobby) — regenerated output is structurally identical to
the converted localized-entries.ts, and localized-messages.ts survives
unchanged; canonical-English validation now anchors on the en locale
- report.ts compares weaponIds; the accuracy table matches emberz's last
run exactly, and the golden suite passes against a from-scratch atlas
regen (bootstrap + font builder)
- pnpm scripts: cv:report, cv:fixtures, cv:bootstrap-atlas,
cv:build-glyph-atlas, cv:build-localized-entries,
cv:build-planner-signatures