cozy-games/packages/mnswpr/core/index.js
2026-07-04 11:39:55 +02:00

25 lines
998 B
JavaScript

// @ts-check
/**
* `@ayo-run/mnswpr/core` — the headless, isomorphic Minesweeper core. No DOM, no
* wall clock. Runs identically in a browser (offline play) or on a server
* (authoritative timing / replay verification). See
* docs/headless-core-and-client-design.md.
*/
// Layer 0 — generic grid (future @cozy-games/grid)
export { Grid } from './grid/grid.js'
export { eightWay, orthogonal } from './grid/neighbors.js'
export { toJSON, fromJSON } from './grid/serialize.js'
// Layer 1 — generic session & authority (future @cozy-games/game-session)
export { GameSession } from './session/session.js'
export { replay } from './session/replay.js'
export { mulberry32, randInt } from './session/rng.js'
// Layer 2 — Minesweeper rules & pure board generation
export { MinesweeperRules } from './minesweeper/rules.js'
export { generateBoard, validateLayout } from './minesweeper/board.js'
// Shared level presets (also consumed by the DOM client)
export { levels } from '../levels.js'