WEB-041
@zoen/game-data/public typed entry + build-all hook (public-data regenerates with every data build) + site import-boundary lint
Evidence
From logs/evidence/WEB-041/. Click a thumbnail for the full image.
No evidence files in logs/evidence/WEB-041/.
Tests
$ pnpm data:test >/dev/null && pnpm data:public:check && pnpm --filter @zoen/site typecheck && pnpm --filter @zoen/site test && pnpm --filter @zoen/site lint$ pnpm data:test >/dev/null && pnpm data:public:check && pnpm --filter @zoen/site typecheck && pnpm --filter @zoen/site test && pnpm --filter @zoen/site lintNotes
2026-10-04 15:14 UTC · src/public.ts (@zoen/game-data/public): typed exports + lookup maps over public-data (the only entry the site may import); package exports './public'. build-all.mjs: one appended block runs export-public after the generators (warning only on failure, so the other lanes' data builds never break). Root scripts data:public / data:public:check. Site lint boundary: a fixture importing the index + raw data + <select> must raise 2× no-restricted-imports + react/forbid-elements (vitest, node env). data:test passes incl. public-export tests.
