scmJS docs

Development

Building the editor and the desktop app, the release channels, and the repository layout.

Node.js 22.18 or newer. The unit extraction script imports TypeScript directly and depends on Node's built-in type stripping.

npm install
npm run extract   # one-time: see docs/game-data.md
npm run dev       # http://localhost:5173
npm run build     # tsc -b (type-check) + vite build
npm run lint      # oxlint
npm test          # vitest run, node environment, ~2s

npm run build is the type-check; npm run lint does not type-check. tsconfig.app.json sets noUnusedLocals, noUnusedParameters, verbatimModuleSyntax (so import type) and erasableSyntaxOnly (so no enums and no parameter properties).