TypeScript API
This reference is generated from the published package barrels. Start with the package that owns the task you are doing:
| Package | Open it when you need to… |
|---|---|
@eigeninteractive/rules | Implement a GameModule, payload schemas, hooks, observations, ratings, or bots. This is where most game code lives. |
@eigeninteractive/server | Compose the Cloudflare Worker with createEngine, BaseGameDO, bindings, deep links, avatars, or the public site. |
@eigeninteractive/testkit | Run twin fixtures, emit/check game-contract.json, or drive rules through the kernel in tests. |
@eigeninteractive/server/testing | Mint local Firebase-compatible tokens and supply explicit no-op Firebase Admin effects for Worker integration tests. Never use it in production code. |
Game Workers depend directly on rules and server; testkit and
server/testing are test-only. The task guides
show how the TypeScript and Dart halves fit together.
The kernel page is an engine internal. It remains available for debugging and
contributors, but a game should not import it to implement rules or deploy a
Worker. The D1 and Durable Object storage schemas are not documented here at
all: they are private to the engine, and readGameRow returns a game row
typed without them.