{"_id":"@bordiko/sdk","_rev":"6-e85725788fc512fe586b474c37026101","name":"@bordiko/sdk","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@bordiko/sdk","version":"0.1.0","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","_id":"@bordiko/sdk@0.1.0","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"dist":{"shasum":"91307a1981973c41f55168196280b16531c0db4e","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.1.0.tgz","fileCount":17,"integrity":"sha512-1eAnxdJU/b9x6ebDOAvfQ8BmgcK6nty8GcFPhuvEc2qPgr1se6b71hzrog+UIVsk8fkYVOXYkm3JdHPJG6S6Aw==","signatures":[{"sig":"MEUCIH9c94K9PWuwmkdEmFmWhOSUISVRrnC3JW6nzLfdhefWAiEA/qShFV+jIqMvUl6DKdbJOqoqieA0AZ7oTwm3/mF+wfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41913},"main":"./dist/index.js","type":"module","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"gitHead":"9b435f56df885b445db5eda9d8eb377ee3442d87","scripts":{"test":"node --test \"test/*.test.ts\"","build":"node build.mjs","prepack":"node build.mjs"},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"_npmVersion":"10.9.7","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1784650254018_0.05134064295043084","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bordiko/sdk","version":"0.2.0","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","_id":"@bordiko/sdk@0.2.0","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"dist":{"shasum":"bf928e32c6cee418e7ca63beb109794e3a32d7d7","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.2.0.tgz","fileCount":17,"integrity":"sha512-c7bF0noQhWNHRTnzOYPGVSNtN5z5TMSXyVkOKl6eE7k7byOIBRfeyx9vEoRHQkY052g/KawhW2s6IIDXbWPQaw==","signatures":[{"sig":"MEUCIQDIWxn8jB/89GFHcj1Nnq/OEhdLiuR5UsD5JGlbP8sLSwIgPoyI6jO5mF+QKPSZ+s35kUehXZyVq2XNGztcT17LNe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47319},"main":"./dist/index.js","type":"module","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"gitHead":"1e89cb8f0e58b443624080e89f12ed1f2604acc2","scripts":{"test":"node --test \"test/*.test.ts\"","build":"node build.mjs","prepack":"node build.mjs"},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"_npmVersion":"10.9.7","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1784745710600_0.22498886077797553","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bordiko/sdk","version":"0.3.0","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","_id":"@bordiko/sdk@0.3.0","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"dist":{"shasum":"72839217c0e48eba20929cd95b4205d4dcffae2e","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.3.0.tgz","fileCount":17,"integrity":"sha512-INiV0VJfHfNTE1lQxW+RLytgqJueh6p923oo1i+KJFB/7SBa7a81g18JbtBTO9CR8LHRttcHiVNu17nOE4Fs2g==","signatures":[{"sig":"MEQCIF44QgdR9wDk6oLJoajcY7ztMnw6cG4FPoeBdXEgYAgRAiAMf9z/nNG/IEneuYerx0Ng+Fuk0yKDkEC8rkjrcn37JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49835},"main":"./dist/index.js","type":"module","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"gitHead":"f234058973ebafbd3b9f23cb409378120b18e650","scripts":{"test":"node --test \"test/*.test.ts\"","build":"node build.mjs","prepack":"node build.mjs"},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"_npmVersion":"10.9.7","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1784824569957_0.48471791035803613","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bordiko/sdk","version":"0.3.1","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","_id":"@bordiko/sdk@0.3.1","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"dist":{"shasum":"761e6e633d689710856528937c376e6a9803f633","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.3.1.tgz","fileCount":17,"integrity":"sha512-PRuRLbcR49sesgLPzasQvq09cqKMZg9rRYvpkKkV44dYWXg3OQ9I5kRinyJO7fbCYL0YRmE5PgqfbLf3IaWKRw==","signatures":[{"sig":"MEYCIQC5Eg6DoUzbb+uT98ndx7gNnHAeCxwnxQJ/5Q6KfnQPyQIhAMnvIBp2OGl+sKQADh9wOoM0gS4X+2Yi3Fpaai7OmFuo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49835},"main":"./dist/index.js","type":"module","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"gitHead":"f234058973ebafbd3b9f23cb409378120b18e650","scripts":{"test":"node --test \"test/*.test.ts\"","build":"node build.mjs","prepack":"node build.mjs"},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"_npmVersion":"10.9.7","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.1_1784824597791_0.16552762458459913","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bordiko/sdk","version":"0.3.2","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","_id":"@bordiko/sdk@0.3.2","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"dist":{"shasum":"d31a7132d4ecdbc150eb7ef229f79ba6cca5cf02","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.3.2.tgz","fileCount":17,"integrity":"sha512-awy15axgYxLjM1lOH30ZTGgcNZCHXKP1EEotBi6ULGUCKoo+UIygl/gfHOaNWvdJPsis65/SY8sZ/2C0OL0ang==","signatures":[{"sig":"MEQCIFp20lTCXlWaYMhueC0cW391CbD6QgWLuN2JAhsGShBbAiAiTDhhcaUqWWk7v8tL9Ntvj/7AqMwtK4cQoB5UM0Y6gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51410},"main":"./dist/index.js","type":"module","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"gitHead":"cd55661cc4c06099dbff0bd5d292b577493602c3","scripts":{"test":"node --test \"test/*.test.ts\"","build":"node build.mjs","prepack":"node build.mjs"},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"_npmVersion":"10.9.7","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.2_1784910625214_0.5766079243239257","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bordiko/sdk","version":"0.4.0","type":"module","description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","keywords":["bordiko","board-game","game-engine","wasm"],"license":"UNLICENSED","publishConfig":{"access":"public"},"main":"./dist/index.js","types":"./dist/types/sdk/src/index.d.ts","exports":{".":{"types":"./dist/types/sdk/src/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./ui":{"types":"./dist/types/sdk/src/ui.d.ts","import":"./dist/ui.js","default":"./dist/ui.js"},"./package.json":"./package.json"},"scripts":{"build":"node build.mjs","prepack":"node build.mjs","test":"node --test \"test/*.test.ts\""},"_id":"@bordiko/sdk@0.4.0","gitHead":"1d9a0c3db83963428aa6de2308878d422f8c22e5","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-5ljZd3eIV7Oak/8nm2I/RsWp2qfdZJCu8BEY8OP09af1BKdur4d+R+MoHDf9P9xYWQ6fTXJaik9BCzVubyqKEw==","shasum":"8b788d087c50f86e0494fab6ff1c6356111180bb","tarball":"https://registry.npmjs.org/@bordiko/sdk/-/sdk-0.4.0.tgz","fileCount":17,"unpackedSize":56998,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDwbvNCTWn0Bb5IYuWxDRutWzwHZBqhUxG3mWqWXyQL7AiAZ4TA8GgE7qufq+Tf5mQf1ezchSHNEUPzmDAdhxgsr1A=="}]},"_npmUser":{"name":"j3dyy","email":"mr.nizharadze@gmail.com"},"directories":{},"maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.4.0_1785164764906_0.42205479290131565"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T16:10:53.755Z","modified":"2026-07-27T15:06:05.247Z","0.1.0":"2026-07-21T16:10:54.153Z","0.2.0":"2026-07-22T18:41:50.769Z","0.3.0":"2026-07-23T16:36:10.152Z","0.3.1":"2026-07-23T16:36:37.934Z","0.3.2":"2026-07-24T16:30:25.374Z","0.4.0":"2026-07-27T15:06:05.073Z"},"license":"UNLICENSED","keywords":["bordiko","board-game","game-engine","wasm"],"description":"Author Bordiko board games: defineGame, the deterministic engine, the hybrid board schema, and the sandboxed custom-UI client. Compile to WebAssembly and publish to the marketplace.","maintainers":[{"name":"j3dyy","email":"mr.nizharadze@gmail.com"}],"readme":"# @bordiko/sdk\n\nEverything you need to author a Bordiko board game: `defineGame`, the deterministic\nengine, the hybrid board schema, and the sandboxed custom-UI client\n(`@bordiko/sdk/ui`). Pairs with [`@bordiko/cli`](../cli) to scaffold, play in a local\nsandbox, compile to WebAssembly, and publish — all from your own repo.\n\n## Now (Phase 1)\n\n- `defineGame(def)` — validates a game definition (kebab-case id, player range,\n  non-empty moves, setup present, `meta.displayName`) and brands it.\n- `BoardSchema` — declarative boards: `grid | hex | network | tableau | custom`.\n- Re-exports everything from `@bordiko/engine` (`createMatch`, `applyMove`,\n  `applyTick`, `getPlayerView`, `replay`, `INVALID_MOVE`, `TickContext`, types, …).\n\n## Real-time (action) games\n\nGive your definition a `tick(G, dt, ctx)` and the host drives a fixed-rate clock,\nso the world advances even without input — turn-based games just omit it.\n\n```ts\nexport default defineGame({\n  name: \"sumo\", minPlayers: 2, maxPlayers: 2,\n  setup: () => ({ /* disks, velocities … */ }),\n  initialActive: (G) => G.disks.map((d) => d.id), // all seats act at once\n  moves: { input: (G, p, ctx) => { /* record held thrust into G only */ } },\n  tick: (G, dt) => { /* integrate physics by the FIXED step dt (ms) */ },\n});\n```\n\nDeclare it in the manifest: `\"realtime\": { \"tick\": true, \"tickRate\": 15 }` (≤ 30).\nKeep `tick` deterministic (fixed `dt`, no wall clock, `ctx.random` only). Your UI\nsubscribes with `connectBordiko().onState(...)`, sends `move(\"input\", …)`, and\ninterpolates with `requestAnimationFrame`. `@bordiko/sdk/ui` also exposes\n`fullscreen()` (asks the host to fullscreen the game stage). See `games/sumo`.\n\n## Debugging\n\nThe sandbox has no host-visible console. Open a game with `?debug` (or press\n**Ctrl+Shift+D**) for a developer panel that shows the live state + legal moves and\nthe sandbox's forwarded logs. Uncaught errors, `console.error`/`console.warn` are\nforwarded automatically; use `connectBordiko().debug(...)` for intentional output.\n\n```ts\nimport { defineGame } from \"@bordiko/sdk\";\n\nexport default defineGame({\n  name: \"my-game\", minPlayers: 2, maxPlayers: 2,\n  setup: () => ({ /* ... */ }),\n  moves: { /* ... */ },\n  meta: { displayName: \"My Game\", board: { kind: \"grid\", rows: 3, cols: 3 } },\n});\n```\n\n## The workflow (with `@bordiko/cli`)\n\n```bash\nnpm create @bordiko/game my-game    # scaffold a project\ncd my-game && npm install\nnpm run dev             # local sandbox: every seat, bots, hot-reload, custom-UI preview\nnpm test               # plain Node, no build\nnpm run build           # compile to WebAssembly (auto-downloads Javy, no Docker)\nnpm run publish:game    # ship to the marketplace\n```\n\nFull guide: <https://bordiko.com/developers>\n\nRun the SDK tests: `npm test`.\n","readmeFilename":"README.md"}