scmJS docs

Tests

Tests live in tests/*.test.ts, and src/**/*.test.ts is picked up too.

npx vitest run tests/chk.test.ts     # one file
npx vitest run -t "flood fill"       # by name
npm run test:watch

Suites that need real map files (fixtures/maps/*.scx) or real tileset files (public/tileset/*.cv5) use describe.skipIf(...) and skip in silence when those are absent. A green run does not by itself mean the real-data suites ran. fixtures/ and the generated public/{tileset,arr,game,scripts,unit}/ are gitignored, and nothing in those trees may be committed.