diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1829f50..ec35d70 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -145,7 +145,7 @@ verify the `latest` link on `reference/dart.md`.
## Documentation versions
The site is versioned on the **engine's release line**. Pre-1.0 that is the
-minor, so `0.2.x` is one line and `0.3.0` starts the next. The label lives in
+minor, so `0.3.x` is one line and `0.4.0` starts the next. The label lives in
`docusaurus.config.ts` under `versions.current.label`, and
`pnpm check-docs-version` asserts it against `info.version` in the committed
`api/openapi.json`. CI runs that check on every pull request.
@@ -160,18 +160,25 @@ between two answers:
**Freeze the old line**, the answer whenever a reader could still be running it:
```bash
-pnpm docusaurus docs:version 0.2.x # the line being frozen, not the new one
+pnpm docusaurus docs:version 0.3.x # the line being frozen, not the new one
```
-That snapshots `docs/` into `versioned_docs/version-0.2.x/` at `/docs/0.2.x/*`,
+That snapshots `docs/` into `versioned_docs/version-0.3.x/` at `/docs/0.3.x/*`,
and `docs/` becomes the new line at `/docs/*`. Then set
`versions.current.label` to the new line. The generated reference freezes with
everything else, which is what you want, since `sync-api` only ever writes to
`docs/`, so no part of that pipeline knows versions exist.
**Relabel in place**, only when the old line was never published, or nobody can
-still be on it. Set `versions.current.label` and change nothing else. That is
-what happened at `0.2.x`: the site's first public deploy already described it.
+still be on it. Set `versions.current.label` and change nothing else. Both
+crossings so far took this answer, and the second one is the useful precedent
+because a cut was arguable: `0.2.x` was published and `eigen_flutter` 0.3.x was
+on pub.dev pinned to it, but the engine had no adopters to strand, and the
+release that crossed the line edited the game object's init migration in place,
+so a `0.2.x` game's local state did not survive the upgrade regardless. A frozen
+`0.2.x` line would have kept describing a wire no engine can speak, which is
+worse than not having it. (`0.1.x` was simpler: the site's first public deploy
+already described `0.2.x`, so no `0.1.x` page was ever reachable.)
Freezing is not free. A cut copies all of `docs/`, and most of this site by
volume is the generated TypeScript and HTTP reference, so each frozen line
diff --git a/api/openapi.json b/api/openapi.json
index f31b2c1..274d571 100644
--- a/api/openapi.json
+++ b/api/openapi.json
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "EigenInteractive Engine API",
- "version": "0.2.5",
+ "version": "0.3.0",
"description": "The server-authoritative game engine API. Client routes (`/api/engine/*`) require a Firebase ID token; the external-bot webhook (`/api/bot/action`) is HMAC-authenticated."
},
"tags": [
@@ -420,6 +420,178 @@
"games"
]
},
+ "Session": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "session"
+ ]
+ },
+ "seq": {
+ "type": "integer"
+ },
+ "gameId": {
+ "type": "string"
+ },
+ "shortCode": {
+ "type": "string"
+ },
+ "access": {
+ "$ref": "#/components/schemas/GameAccess"
+ },
+ "schemaVersion": {
+ "type": "integer"
+ },
+ "config": {
+ "type": "object"
+ },
+ "turnSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "budgetSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "incrementSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "rated": {
+ "type": "boolean"
+ },
+ "ratingPool": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "minPlayers": {
+ "type": "integer"
+ },
+ "maxPlayers": {
+ "type": "integer"
+ },
+ "createdBy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "$ref": "#/components/schemas/GameStatus"
+ },
+ "players": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Seat"
+ }
+ },
+ "version": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "frame": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/Frame"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "seq",
+ "gameId",
+ "shortCode",
+ "access",
+ "schemaVersion",
+ "config",
+ "turnSeconds",
+ "budgetSeconds",
+ "incrementSeconds",
+ "rated",
+ "ratingPool",
+ "minPlayers",
+ "maxPlayers",
+ "createdBy",
+ "status",
+ "players",
+ "version",
+ "frame"
+ ]
+ },
+ "Frame": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "frame"
+ ]
+ },
+ "version": {
+ "type": "integer"
+ },
+ "data": {
+ "type": "object"
+ },
+ "pendingPlayers": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "deadline": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "playerTimes": {
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "type": "integer"
+ }
+ },
+ "outcomes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Outcome"
+ }
+ },
+ "ratings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RatingDelta"
+ }
+ }
+ },
+ "required": [
+ "type",
+ "version",
+ "data",
+ "pendingPlayers",
+ "deadline",
+ "playerTimes"
+ ]
+ },
"Players": {
"type": "object",
"properties": {
@@ -715,85 +887,12 @@
"SoloStarted": {
"type": "object",
"properties": {
- "gameId": {
- "type": "string"
- },
- "shortCode": {
- "type": "string"
- },
- "version": {
- "type": "integer"
- },
- "frame": {
- "$ref": "#/components/schemas/Frame"
+ "session": {
+ "$ref": "#/components/schemas/Session"
}
},
"required": [
- "gameId",
- "shortCode",
- "version",
- "frame"
- ]
- },
- "Frame": {
- "type": [
- "object",
- "null"
- ],
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "frame"
- ]
- },
- "version": {
- "type": "integer"
- },
- "data": {
- "type": "object"
- },
- "pendingPlayers": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "deadline": {
- "type": [
- "integer",
- "null"
- ]
- },
- "playerTimes": {
- "type": [
- "array",
- "null"
- ],
- "items": {
- "type": "integer"
- }
- },
- "outcomes": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Outcome"
- }
- },
- "ratings": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/RatingDelta"
- }
- }
- },
- "required": [
- "type",
- "version",
- "data",
- "pendingPlayers",
- "deadline",
- "playerTimes"
+ "session"
]
},
"CreateSolo": {
@@ -856,44 +955,15 @@
"botIds"
]
},
- "Joined": {
- "type": "object",
- "properties": {
- "gameId": {
- "type": "string"
- },
- "roster": {
- "$ref": "#/components/schemas/Roster"
- }
- },
- "required": [
- "gameId",
- "roster"
- ]
- },
- "Roster": {
+ "CommandAccepted": {
"type": "object",
"properties": {
- "type": {
- "type": "string",
- "enum": [
- "roster"
- ]
- },
- "status": {
- "$ref": "#/components/schemas/GameStatus"
- },
- "players": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Seat"
- }
+ "session": {
+ "$ref": "#/components/schemas/Session"
}
},
"required": [
- "type",
- "status",
- "players"
+ "session"
]
},
"Join": {
@@ -931,17 +1001,6 @@
}
]
},
- "LobbyAccepted": {
- "type": "object",
- "properties": {
- "roster": {
- "$ref": "#/components/schemas/Roster"
- }
- },
- "required": [
- "roster"
- ]
- },
"LobbyCommand": {
"type": "object",
"properties": {
@@ -968,21 +1027,6 @@
"botId"
]
},
- "CommandAccepted": {
- "type": "object",
- "properties": {
- "version": {
- "type": "integer"
- },
- "frame": {
- "$ref": "#/components/schemas/Frame"
- }
- },
- "required": [
- "version",
- "frame"
- ]
- },
"Action": {
"type": "object",
"properties": {
@@ -1573,6 +1617,77 @@
}
}
},
+ "/api/engine/games/{gameId}/session": {
+ "get": {
+ "operationId": "getGameSession",
+ "tags": [
+ "Games"
+ ],
+ "parameters": [
+ {
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ },
+ "required": true,
+ "name": "gameId",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The caller's current session snapshot",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Session"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Missing or invalid token",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Not allowed",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/api/engine/players": {
"get": {
"operationId": "getPlayers",
@@ -2309,11 +2424,11 @@
},
"responses": {
"200": {
- "description": "Seated: the game's id and the post-join roster",
+ "description": "Seated: the post-join session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Joined"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2399,11 +2514,11 @@
},
"responses": {
"200": {
- "description": "Seated: the game's id and the post-join roster",
+ "description": "Seated: the post-join session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Joined"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2500,11 +2615,11 @@
},
"responses": {
"200": {
- "description": "Left: the post-leave roster",
+ "description": "Left: the post-leave session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2605,7 +2720,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2702,11 +2817,11 @@
},
"responses": {
"200": {
- "description": "Bot seated: the new roster",
+ "description": "Bot seated: the post-commit session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2803,7 +2918,7 @@
},
"responses": {
"200": {
- "description": "Started: version 0 committed",
+ "description": "Started: the session at version 0",
"content": {
"application/json": {
"schema": {
@@ -2904,7 +3019,7 @@
},
"responses": {
"200": {
- "description": "Committed: the acting seat's frame",
+ "description": "Committed: the acting seat's session",
"content": {
"application/json": {
"schema": {
diff --git a/docs/reference/http-api/accept-friend-request.api.mdx b/docs/reference/http-api/accept-friend-request.api.mdx
index aed2dcf..0e80072 100644
--- a/docs/reference/http-api/accept-friend-request.api.mdx
+++ b/docs/reference/http-api/accept-friend-request.api.mdx
@@ -5,7 +5,7 @@ description: "acceptFriendRequest"
sidebar_label: "acceptFriendRequest"
hide_title: true
hide_table_of_contents: true
-api: eJztV0tz00gQ/itTfdlkS9iBhT0Ili2TTcBsgFRsikPKhdtS2xoszSgzLTvelP77Vs9IDuCcOeWkefT04+uvWzN3YGtyyNqacQ4pYJZRzedOk8mv6KYhz5AA48pDeg0Tm2ksYZZAjQ4rYnKyfgc+K6hCSO+AdzVBCp6dNitIoNLmgsyKC0iftgk4umm0oxxSdg0lYLAS8caTG+eQgDaQQo1cQDsTaV9b48mL5mcnz+WTk8+crsVjSGFakHLRT7VFr6L/lEObwPOTk8MDY7PBUuf9IUggs4bJsIhiXZc6C2gMv3mRfyA0u/hGmRysnWDHOrpHzll3iEArBnJ6CBoyTSWoGsujjPWGIJHxFWG+k+3bOiAVFi/J5PGUZ2T6XOfIFAEL8VzirrQYFsqSVlh+sEFfY9bGbs1bgTkoem+1wUUpsxVWdN6UJSSApROrsrm3iI51pms0HBdOHSFbJ4jF0SkaY/mCMFiKOH02vqlr66JzklbJcAf6dytTXJOBBJaBaf6TKSVkRyvtOdLxqmdKArrCFU2tvUC3ikHtjYzDlgCbgEOmC11psT1Lfsr7SHmWuFWFWaENKcmK0jkZ1sudNiu1LXYK92Raoi4pHwj5NZeStzNJ8Knksv2ByNdd6mc/iV515IW2bQMbnx6y8YP2Xmxbp7pEKrYRmUdaPtLyl9Dyj0NafrSssCztNsT5yMRHJv4SJj7wfxcmLm1jHnn4yMNfwsP2Z38evhFXxIWVC3NtwzxcWVMYYq2HZFba0LBDbNg56od38ZbbDqNKSQVljdO8C3fopXa0QE+QXs/k8ttvTiRfkbr3InuSFsx1n1SZLwgdSe7j4Ny6ChlSeP9lCodQn3cK1fifePFIlCfDCr2ajxourNP/hSSn6k3Qp14FsddzdWSdmv8dZn/NlTXqCy0mNlsTq6ZeOczJHw+kqhaW31WYfecz1vpf2vW3/YIwDx53b4EzvSLzZKJXBrlxdOi1UXTLws5SLSz/5tW7D6NT5fsDym7IKS5I0S1mvCfKwua7RC2kmSi2QWCOmSidq9xWqM1ARazVfPM0eSW4/Pn89fxlEK3JPVlYVmvaKe3VXGwevfk0/ToZv/04/vj26+Ts9OpsKgZ4nB/PB0qeJpEKwTevtrgmr7aai6DRY0UqBq+0CUuWC3Iq146CX4NAYG2WNoDXc1bwGRsmh6EZqbNoZHQ5hgQ25HzE6WTwbPDiAD3xypPbkHuCMcGMQYs0md7f0eV4oE5LLVRwtmHy6mj+Pbd/nx+rrrAUHrLoZQd/zFLAbUuLwtp1r2dhediBfyx4CpzBISnzTFpm4I5UV4WhvXfsiLWjYj2q+4L8Ico905hueViXqI1oa1wpe7FWr4WGoblLRPcdDmLLkIqFBNL9y7Qr2lkChZR8eg13dxL0Z1e2rSzfNOSkkmcJbNDp0LulrnPtZZxDusTS04Gr+98aHPWt9FhJO3sohL6CjJTPBstGZpDAmnb3z+h21iZ9WYkHcXPUd53+2MFPVLrOvrFdfppMoW3/B1VAoug=
+api: eJztV0tz2zYQ/iuYvdTuMJLTZHpg0nQU106UOrHHkicHjyZakSsREQkwwFKy6uF/7yxAyknkc04+EY/FPr79dgncg63JIWtrxjmkgFlGNZ87TSa/pm8NeYYEGFce0luY2ExjCbMEanRYEZOT9XvwWUEVQnoPvKsJUvDstFlBApU2F2RWXED6vE3A0bdGO8ohZddQAgYrEW88uXEOCWgDKdTIBbQzkfa1NZ68aP7j5KV8cvKZ07V4DClMC1Iu+qm26FX0n3JoE3h5cnJ4YGw2WOq8PwQJZNYwGRZRrOtSZwGN4Vcv8o+EZhdfKZODtRPsWEf3yDnrDhFoxUBOj0FDpqkEVWN5lLHeECQyvibMd7J9VwekwuIVmTye8oxMN3WOTBGwEM8V7kqLYaEsaYXlRxv0NWZt7Na8E5iDog9WG1yUMlthRedNWUICWDqxKpt7i+hYZ7pGw3Hh1BGydYJYHJ2iMZYvCIOliNON8U1dWxedk7RKhjvQv1uZ4poMJLAMTPOXppSQHa2050jH654pCegKVzS19gLdKga1NzIOWwJsAg6ZLnSlxfYs+SnvI+VZ4lYVZoU2pCQrSudkWC932qzUttgp3JNpibqkfCDk11xK3s4kwaeSy/YHIt92qZ/9JHrdkRfatg1sfH7Ixo/ae7FtneoSqdhGZJ5o+UTLX0LLF4e0/GRZYVnabYjziYlPTPwlTHzk/y5MXNrGPPHwiYe/hIftz/48fiOuiAsrF+bahnm4sqYwxFoPyay0oWGH2LBz1A/v4y23HUaVkgrKGqd5F+7QS+1ogZ4gvZ3J5bffnEi+InUfRPYkLZjrPqkyXxA6ktzHwbl1FTKk8OHzFA6hPu8UqvE/8eKRKE+GFXo1HzVcWKf/C0lO1dugT70OYm/m6sg6Nf87zP6aK2vUZ1pMbLYmVk29cpiTPx5IVS0sv68w+85nrPW/tOtv+wVhHjzu3gJnekXm2USvDHLj6NBro+iOhZ2lWlj+zav3H0enyvcHlN2QU1yQojvMeE+Uhc13iVpIM1Fsg8AcM1E6V7mtUJuBilir+eZ58lpw+fPlm/mrIFqTe7awrNa0U9qrudg8ens5/TIZv/s0/vTuy+Ts9PpsKgZ4nB/PB0qeJpEKwTevtrgmr7aai6DRY0UqBq+0CUuWC3Iq146CX4NAYG2WNoDXc1bwGRsmh6EZqbNoZHQ1hgQ25HzE6WTwYnBygJ545cltyD3DmGDGoEWaTO/v6Go8UKelFio42zB5dTT/ntu/z49VV1gKD1n0qoM/ZingtqVFYe2617OwPOzAPxY8Bc7gkJR5Ji0zcEeqq8LQ3jt2xNpRsR7VQ0H+EOWeaUx3PKxL1Ea0Na6UvVirt0LD0NwloocOB7FlSMVCAun+ZdoV7SyBQko+vYX7ewn6xpVtK8vfGnJSybMENuh06N1S17n2Ms4hXWLp6cDV/W8NjvpWeqyknT0WQl9BRspng2UjM0hgTbuHZ3Q7a5O+rMSDuDnqu05/7OAnKl1n39iuLidTaNv/AUw6ouQ=
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/add-bot.StatusCodes.json b/docs/reference/http-api/add-bot.StatusCodes.json
index 2d8d449..5529b76 100644
--- a/docs/reference/http-api/add-bot.StatusCodes.json
+++ b/docs/reference/http-api/add-bot.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Bot seated: the new roster","content":{"application/json":{"schema":{"type":"object","properties":{"roster":{"type":"object","properties":{"type":{"type":"string","enum":["roster"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}}},"required":["type","status","players"],"title":"Roster"}},"required":["roster"],"title":"LobbyAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Bot seated: the post-commit session","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/add-bot.api.mdx b/docs/reference/http-api/add-bot.api.mdx
index f346cd2..e929396 100644
--- a/docs/reference/http-api/add-bot.api.mdx
+++ b/docs/reference/http-api/add-bot.api.mdx
@@ -5,7 +5,7 @@ description: "addBot"
sidebar_label: "addBot"
hide_title: true
hide_table_of_contents: true
-api: eJztmV9v2zYQwL8KwZclg2K3WTdsatfBydLWXdoGcYo+BEZ9ls4SG4lUyZMdzfB3H46UHMfO2pciT85LLPJ4vD+/OzmXpTQVWiBl9DCVsYQ0PTEkI0mQORlfy9dQopPjSFZgoURCy8tL6ZIcS5DxUlJToYylI6t0JiNZKn2OOqNcxk9XkbT4tVYWUxmTrTGSGkoWz6DEYSojqbSMZQWUy9U4SKOjE5M2rHv7cGI0oSbegqoqVOIt739xRvPajlFm+gUTdqey7CcpdLw7NcTebtu+4gvKEnT60O59zyJZwu366fj31T1Xr9srxpEkRQVrGYTIrlZB0lVGu2DN8ZMn/CtFl1hVsUMylieGhEMgTGNBOQqNC2GNI7Tyh4Wh1fddubC7Gw/Udcm+tnrGq0g6Aqrdt4QXoCisWIS0kZGEhNQcZSRnSiuXI1MBU2MJ7wWQSRwF9atIVgU0nsX1TWAtsDpFWLrvOxUUDHWKtxvCShNmaPmG2qHd5OD6zhddF4V3dwukh0S+F7y8LkFLr0qOtynaNHJtUXdtq3sjRCMET9h9JV5qnZq70G0cvAwZ3D7ZJfZO8NxMp80gSbDi7ASYnz3E71DPoVCpaAv6x0GL1hr7P7WbfjPS2tCgQ00bumzxw9vK++sXL1Cn4RSHCz9WKZegb1PenwtoCgN+oSgwg+Kd8fpqfaPNQjOjQdFbozRMC37iVveKcYgkFB563lzfCJZUoirQFBZOLQIZX+bh0ylobegcwd8U4vRRu7qqQo0EMLivtkHfWLmCG2S6ZlahTt0HXTS+8jLlKLT9yy7fkVQlZHhlzDnYLDi1vmTotwJIFgjPVana+ryf94FwxH6LEpJcaRScFaFS1KRmjdKZWOSNgI4LMQNVYNqTd4idcYJPOZfbOIbUj7dEL9teuqbx6S6N75RzfLexok2kIBMis8dyj+WjYPnLLpbvDQkoCrPwfu5J3JP4KCQ+e5jEman1nsM9h4/G4R+7HPIXfDZFzwqV0HNh0TU6EaD5myTZZo/nHs9HwvP4eBfPgXNMkNGiVK4ESvI9kHsgHwPI1bY960ldiZQbnt1Vxv+d7WdpsexDpfqoM6Wxz4ly/WWYua36kKZHU3/WYVJbRY0f6c2UxSk4nmOMeRbXbY44MYHRO5E1jTlR1WWPn6cI1g+pwodXxpZAMpZvP13J3Zi+ahWK4d/hL7JIONQkwInJoKbcWPWvz2YsTrw+8cKLvZyIA2PF5C//9OdEGC0+4XRkkhskUVeZhRTdYU+GIc2bEpLNUVGl/sGmGz7mCKm3uB1NnqkM9dFIZRqotrhrtRZ4S4xhIaaGfnLizbvBqXDdAWHmaP3QDm8hoTURU5M2kZjytyxBxgtMePZl9ESkpgSleyLEWkzmT6MXHJffnr2cPPeiFVpOmrjBRignJnznwcmHq8+j4ev3w/evP4/OTi/PrvgCGqaHk564Ygs8AN42JxZwg04sFOVeo4MSRXBeKO2XDOVoRaosert6nlRuZJd3c9mzWyirAjfmqHcdaWN8utG/lJ4ZH/2Obg7wUBPaMPoTZ8HKwcVQRnKO1oVAP+kd937dCT+75dDO0R5BIITAa2G8O4cHF8OeOC0Us2RNTejEwWSzJH6eHIq2BAXsYvi8zV9Isw/8Aqe5MTednqmhfpu9Q04I58MbxA0h4ebq4eOi5AFfvOzwgjQVoXLv+bWGk/CW+lUBSvsppC38tNIX9TWT6xs/+9B2YB7pxetxelfb40jm3A/ia7lcsmsfbbFa8fLXGi0X/DiSc7DK93Iu/1Q5/pzKeAaFwx3z1q85edC11kPRDSG3ze4KTXOVzaGo+UlG8gabu+H/iuejbfWxBWHzNNxz1Dbl7vDOq3UVdSfCPPKbsuONPnnxYXTlh6jhfwylf7tKCwv/ClgEQ433O4zJeW0pC9BZDRnLBp388x86msyZ
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/block-user.api.mdx b/docs/reference/http-api/block-user.api.mdx
index 7ab27d2..61c3c0e 100644
--- a/docs/reference/http-api/block-user.api.mdx
+++ b/docs/reference/http-api/block-user.api.mdx
@@ -5,7 +5,7 @@ description: "blockUser"
sidebar_label: "blockUser"
hide_title: true
hide_table_of_contents: true
-api: eJztV01z20YM/SsYXGp3GMlJ0x6YNB3FdVKlTuKx5MnBo4lAEhI3IneZXVC26uF/72ApKU7kc04+idwP4OHhAYTu0DXsSYyz4wJTzCqXr64Ce0xQaBkwvcaJyw1VOEuwIU81C3tdv8OQl1wTpncom4YxxSDe2CUmWBt7znYpJaZPuwQ9f22N5wJT8S0naKnW421gPy4wQWMxxYakxG6mp0PjbOCglp+dPNefgkPuTaM4McXXipILODIF140TtnKMXYLPT04OD4/tmipTgILgIJhg7qxe0aPUNJXJY/zDL0HPPxCWy75wrhcbr2yJ6aGx984fRt+pg4IfooVtWyuj1skoF7NmTPT5kqnY6PZtE1mKixdsi/5WEBK+agoS7smK8VzQpnIUF6qKl1S9d9Fea1fW3di3SnE09M4ZS1mlb0uq+U1bVZggVV696ubeI3kxuWnISr9w6pnEqRTy/umUrHVyzhQ99Txd2dA2jfM9OE2pZndL+r2VKa3YYoILb9gW4aOtNGTPSxOkF+DlTiUJmpqWPHXunPyyD2rvZBy3lNgEPQmfm9qo71nyQ95HEETjhpry0lgGzQqYgq2YxcbYJdyUG6CdLmBBpuJioMI3UmnezjTBp5rL7jsRX29TP/vh6OVWuNh1XVTj00M1vjchqG/nYZtIENcz8yjLR1n+FFn+dijLD06AqsrdxDgflfioxJ+ixAe+7arEhWvtow4fdfhTdNj9iOf+DFyzlE4H48bF0TEOqSkOqTFDtktjebjlaXjXj7PdMN5X2jlvvZFNnJUXxnNGgTG9numQu9ucaG56mX47shdkKdLsEqjvGZOPuPqHN87XJJjiu09TPKT1zdYgjP/uh4wEAlsBCjAftVI6b/6LCU3hdbQHL+OxV3M4ch7mf8W3P+fgLHzibKJDt0DbLD0VHI4HWkGZk39qyu9hpsb8y5vdVF8yFRHxduY/M0u2TyZmaUlaz4eoLfCtqBIryJz8EuCf96NTCLsL4NbsQUoGvqVc9qLIXLFJINPGAeLigTnlanQOhavJ2AH0XMN8/TR5qbz88fzV/EU82rB/kjmBFW/ABJirz6PXH6efJ+O3H8Yf3n6enJ1enk3VgYyL4/kApoogCiBiC3BDKw5wY6SMFgPVDH3wYGxcclKyh8J4jrgGUazGLlwkb6dP5WdshT3FxgNnvZPRxRgTXLMPPU8ng2eD3w/YU1SB/Zr9E+oTLBStaEPZ4R1djAdwWhmVgnetcICj+X1F/zo/hm0RAR2q6MWW/j5LkbcbzkrnVjs7mZPhlvxj5VPpjIC0pHNtj1E7WlM1xVa+VUcsHdjW3neh7eUlfCvDpiJj1UTrK93ry/JatRe7t4bxrYVhgun+v2ZfnbMES63o9Brv7jS6K191nS5/bdlryc4SXJM3sSFrARcm6HOB6YKqwAfw9t8qPNr1x2PQHvUQ7F2pWK2TNVWtvmGCK958+1/czbpkVz+KoN8c5Tk3cu/awZdR28u+b118nEyx6/4HfdSMog==
+api: eJztV99z00gM/lc0ern2xiTlYO7BcNyEXoFwBTpNOjx0MkS2lXiJvWt25bS5jv/3G62TUEifeepT7P0hffr0SVbu0DXsSYyz4wJTzCqXr64Ce0xQaBkwvcaJyw1VOEuwIU81C3tdv8OQl1wTpncom4YxxSDe2CUmWBt7znYpJaZPuwQ9f2uN5wJT8S0naKnW421gPy4wQWMxxYakxG6mp0PjbOCglv84ea4/BYfcm0ZxYoqvFSUXcGQKrhsnbOUYuwSfn5wcHh7bNVWmAAXBQTDB3Fm9okepaSqTx/iHX4OefyAsl33lXC82XtkS00Nj750/jL5TBwU/RAvbtlZGrZNRLmbNmOjzJVOx0e3bJrIUFy/YFv2tICR81RQk3JMV47mgTeUoLlQVL6n64KK91q6su7FvleJo6L0zlrJK35ZU85u2qjBBqrx61c29R/JictOQlX7h1DOJUynk/dMpWevknCl66nm6sqFtGud7cJpSze6W9HsrU1qxxQQX3rAtwidbacielyZIL8DLnUoSNDUteercOfllH9TeyThuKbEJehI+N7VR37Pkp7yPIIjGDTXlpbEMmhUwBVsxi42xS7gpN0A7XcCCTMXFQIVvpNK8nWmCTzWX3Q8ivt6mfvbT0cutcLHruqjGp4dq/GBCUN/OwzaRIK5n5lGWj7L8JbJ8dijLj06AqsrdxDgflfioxF+ixAe+7arEhWvtow4fdfhLdNj9jOf+DFyzlE4H48bF0TEOqSkOqTFDtktjebjlaXjXj7PdMN5X2jlvvZFNnJUXxnNGgTG9numQu9ucaG56mX4/shdkKdLsEqjvGZOPuPqHN87XJJji+89TPKT1zdYgjP/ph4wEAlsBCjAftVI6b/6LCU3hdbQHL+OxV3M4ch7mf8e3v+bgLHzmbKJDt0DbLD0VHI4HWkGZk3c15fcwU2P+5c1uqi+Zioh4O/OfmSXbJxOztCSt50PUFvhWVIkVZE5+C/Duw+gUwu4CuDV7kJKBbymXvSgyV2wSyLRxgLh4YE65Gp1D4WoydgA91zBfP01eKi9/Pn81fxGPNuyfZE5gxRswAebq8+j1p+mXyfjtx/HHt18mZ6eXZ1N1IOPieD6AqSKIAojYAtzQigPcGCmjxUA1Qx88GBuXnJTsoTCeI65BFKuxCxfJ2+lT+RlbYU+x8cBZ72R0McYE1+xDz9PJ4Nng5IA9RRXYr9k/oT7BQtGKNpQd3tHFeACnlVEpeNcKBzia31f07/Nj2BYR0KGKXmzp77MUebvhrHRutbOTORluyT9WPpXOCEhLOtf2GLWjNVVTbOVbdcTSgW3t/RDaXl7CtzJsKjJWTbS+0r2+LK9Ve7F7axjfWxgmmO7/a/bVOUuw1IpOr/HuTqO78lXX6fK3lr2W7CzBNXkTG7IWcGGCPheYLqgKfABv/63Co11/PAbtUQ/B3pWK1TpZU9XqGya44s33/8XdrEt29aMI+s1RnnMj964dfBm1vez71sWnyRS77n91Koye
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/bot-action.api.mdx b/docs/reference/http-api/bot-action.api.mdx
index c834e3d..f16756b 100644
--- a/docs/reference/http-api/bot-action.api.mdx
+++ b/docs/reference/http-api/bot-action.api.mdx
@@ -5,7 +5,7 @@ description: "botAction"
sidebar_label: "botAction"
hide_title: true
hide_table_of_contents: true
-api: eJztVktvGzcQ/ivEXBoXa1kJ3B42aQpZdRKlTmLYCnIQhGi0O14x2iU35KxkVdj/Xgypl6006KHoKReJSw6HM/N981iDrckha2sGOaQwtdzL5AsSYCw8pCO4sPyJpjNr5zBOwFPWOM0rSEdrEX9TYQbpaNyOE3D0tSHPFzZfQboOn9pRDim7hhLIrGEyLEdY16XOwrtnX7w1suezGVUoK17VBCnY6RfKGBKonVjJmrycTi2LrTsxz06bAhKotLkiU/AM0qdtAgVW9K8E6xJX5AYmp/sDaW2YCnJRXFdNBWm3TWBBzuto8PcFc2Rxpm2Tg0CMNtbvrHv4+l79OAHWXIr+ix0mbRu1+doaH4PxrHsufzn5zOk6SKUwnJGq7ILUEr3CLKOaKVdochXiTjm0CZx3u8c332F5Z11FuZoKiP8ZZuScdcdQtPJATt/CiIwEcgQmer8gSGR9Qxjsovs6RDRsXpPJ4y3PyPSxzpHDmTYLLHV+javSYtgoSyqwfGeDvsbMjV2a11httL+12uC0pA0+r5qyhASwdPKqHO5eRMc60zUajht9R8hWSJDFVR+NsXxFGF6KcfpofFPX1kXjGk/OCAuikQc7Q5yTZOCd02Ry/8GU4rKjQnuOyXqzZVQCusKChtZeoSuiU7tHBuFIApuAQ6YrXWl5e5w8gr2nPIvfqsJspg0pQUXpnAzru5U2hVrOVgrVJsHVHeqS8g7sSXopAPcFy8eEj9CPH4nebEi84fR59+kxGTeBUV4XBrlx9IOPP/j4f/CxfWzPYVusiGdWemVtfSAWSh+BM6z12dTyGW4Ft53yVmIdaXenHU3RHxJsxlxvAZHvKaELzSQuXllXIUMKbz8N4ThMrzYK1eAPxXZOJlGeDCv0atJreGad/isAlKqLoE+9CGIvJ+qJdWrye/j6baKsUZ9oemuzObFq6sJhTv6kIxmxa/I7m7HWf9Iq8Fk8IMyDxUIViacuyJzeHiTtI6uNonsWZpVqavknr9686/X3Wa7sgpziGSm6x4x3IEtHStTUNiZXbIPAJAZ7onJboTYdFWOtJounyQuJy6/nLyfPg2hN7nRqWc1ppbRXE3nzycWH4efbwev3g/evP99e9m8uh/IAD/KTSUdJFyVTCP3ENq+WOCevlppnQaPHilR0XmkTtizPyKlcOwp2dQL5pDbd7Cejy3us6pIOJpl9kdmOLPudB7NJ92D86D6YMLS5swGgLacFg4FhchiKlbqMjvSuBwdDRgrdzrPOL0cIieee3ILcKUYSMQYtYt82Jr3rQUf1Sy10c7Zh8urJJGRBFDj7eXKiNomn8JipzzcQRyYEbJZxzNzq2WfT5EQwE8iCQVIGMimpgZ+ShxWG8r9hoOja5esD13YUZrrns7pEbURF40o5i6k8En5D4L0U26hnnMBM8j0dwXotfnx0ZdvK9teGnEzD4wQW6HQo1zIPJ9vEkEF5TitIoR+b1+mmBC6wbGI6PWpkbbK90QvD23dlxwcl6frD7TBYHgfwKvQycLgMBXcJKUACNsQi1KOwt4YSTdFgIbJRp1BKAv0w5+ch5zcL8Wp7ZFYHFh6nf3RFfsWxb15ar2NNadudfDz6xxu7qhOlBcdx27Z/A42EbX0=
+api: eJztVktvGzcQ/ivEXBoXa1lpjR42aQpZdRIlTmLYCnIQhGi0O14x2iU35KxkVdj/Xgypl6006KHoKReJSw6HM/N981iDrckha2sGOaQwtdzL5AsSYCw8pCO4sPyJpjNr5zBOwFPWOM0rSEdrEX9dYQbpaNyOE3D0tSHPFzZfQboOn9pRDim7hhLIrGEyLEdY16XOwrtnX7w1suezGVUoK17VBCnY6RfKGBKonVjJmrycTi2LrTsxz06bAhKotLkiU/AM0qdtAgVW9K8E6xJX5AYmp/sDaW2YCnJRXFdNBWm3TWBBzuto8PcFc2Rxpm2Tg0CMNtbvrHv4+l79OAHWXIr+ix0mbRu1+doaH4PxS/dc/nLymdN1kEphOCNV2QWpJXqFWUY1U67Q5CrEnXJoEzjvdo9vvsPyzrqKcjUVEP8zzMg5646haOWBnL6FERkJ5AhM9H5BkMj6hjDYRfd1iGjYvCaTx1uekeljnSOHM20WWOr8GlelxbBRllRg+c4GfY2ZG7s0r7DaaH9jtcFpSRt8XjZlCQlg6eRVOdy9iI51pms0HDf6jpCtkCCLqz4aY/mKMLwU4/TR+KaurYvGNZ6cERZEIw92hjgnycA7p8nk/oMpxWVHhfYck/Vmy6gEdIUFDa29QldEp3aPDMKRBDYBh0xXutLy9jh5BHtPeRa/VYXZTBtSgorSORnWdyttCrWcrRSqTYKrO9Ql5R3Yk/RSAO4Llo8JH6EfPxK92ZB4w+nz7tNjMm4Co7wuDHLj6Acff/Dx/+Bj+9iew7ZYEc+s9Mra+kAslD4CZ1jrs6nlM9wKbjvlrcQ60u5OO5qiPyTYjLneAiLfU0IXmklcvLSuQoYU3nwawnGYXm4UqsGfiu2cTKI8GVbo1aTX8Mw6/VcAKFUXQZ96HsReTNQT69Tkj/D1+0RZoz7R9NZmc2LV1IXDnPxJRzJi1+R3NmOt39Iq8Fk8IMyDxUIViacuyJzeHiTtI6uNonsWZpVqavknr16/6/X3Wa7sgpziGSm6x4x3IEtHStTUNiZXbIPAJAZ7onJboTYdFWOtJounyXOJy2/nLybPgmhN7nRqWc1ppbRXE3nzycWH4efbwav3g/evPt9e9m8uh/IAD/KTSUdJFyVTCP3ENq+WOCevlppnQaPHilR0XmkTtizPyKlcOwp2dQL5pDbd7Cejy3us6pIOJpl9kdmOLPudB7NJ92D86D6YMLS5swGgLacFg4FhchiKlbqMjvSuBwdDRgrdzq+d7hFC4rkntyB3ipFEjEGL2LeNSe960FH9UgvdnG2YvHoyCVkQBc5+npyoTeIpPGbqsw3EkQkBm2UcM7d69tk0ORHMBLJgkJSBTEpq4KfkYYWh/G8YKLp2+frAtR2Fme75rC5RG1HRuFLOYiqPhN8QeC/FNuoZJzCTfE9HsF6LHx9d2bay/bUhJ9PwOIEFOh3KtczDyTYxZFCe0wpS6MfmdbopgQssm5hOjxpZm2xv9MLw9l3Z8UFJuv5wOwyWxwG8Cr0MHC5DwV1CCpCADbEI9SjsraFEUzRYiGzUKZSSQD/M+XnI+c1CvNoemdWBhcfpH12RX3Hsm5fW61hT2nYnH4/+8cau6kRpwXHctu3fglJteQ==
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/cancel-game.StatusCodes.json b/docs/reference/http-api/cancel-game.StatusCodes.json
index 713aed8..48080fe 100644
--- a/docs/reference/http-api/cancel-game.StatusCodes.json
+++ b/docs/reference/http-api/cancel-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"roster":{"type":"object","properties":{"type":{"type":"string","enum":["roster"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}}},"required":["type","status","players"],"title":"Roster"}},"required":["roster"],"title":"LobbyAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/cancel-game.api.mdx b/docs/reference/http-api/cancel-game.api.mdx
index d2f8088..21532cc 100644
--- a/docs/reference/http-api/cancel-game.api.mdx
+++ b/docs/reference/http-api/cancel-game.api.mdx
@@ -5,7 +5,7 @@ description: "cancelGame"
sidebar_label: "cancelGame"
hide_title: true
hide_table_of_contents: true
-api: eJztmV9v2zYQwL8KwZclg2K3WTdsbtfB9dLWXdoGcYo+BEZ9ls4SF4lUyZMdzdB3H46UHMcukpeiT85LLPJ4vD+/OzmXtTQlWiBl9DiRAxmDjjF/AwXKSBKkTg6uJT86OY1kCRYKJLS8vJYuzrAAOVhLqkuUA+nIKp3KSBZKn6NOKZODp00kLX6tlMVEDshWGEnN+gcyhQLHiYyk0nIgS6BMNtMgjY5emaRm3buHY6MJNfEWlGWuYm99/19nNK/tGWXm/2JMMpKlZV9JoePd2BQF6IS9ftj+SBZwu3k6/b1pIkmKcj5wbubzehQ0yaZpvK+uNNqFS06fPOFfCbrYqpLtlAM58jHOkT3/Ts5Y4wjt43Jhd99f1FXBmW71TJtIOgKq3EPCK1AUVixCUstIQkxqyeQslFYu8x7C3FjChPHposY8TYL6JpJlDrUnanMTWAusThEW7nGngoKxTvB2S1hpwhQt31A5tNt5vr7zRVd57t2dG3pM5LHgZVUBWnpVctrcw/76npEbi7prW91bIZogkGx2lXipTWruQrd18DJkcPdkl9gddIdxjCVnJ7D77Fu4jvUScpWItiy/H7RorbH7AW34guTBSGtDww41beiyxQ9vS++vX7xAnYRTHC78VCZAGJqN9+cC6tyAX8hzTCF/b7y+St9os9JtC9SG3hmlYZ7zEzes14xDJCH30PPm5kawpGJVgqawMLIIZCxHLHwagdaGzhH8TSFOn7SryjLUSACDu2Mb9K2VK7hBpmthFerEfdR57SsvVY5CA7/s8h1JVUCKV8acg02DU5tLxn4rgGSB8FwVqq3P+3kfCkfstyggzpRGwVkRKkFNalErnYpVVgvouBALUDkmPXmH2BkneMS53MUxpH66I3rZts4NjU/3aXyvnOO7jRVtIgWZEJkDlgcsfwiWv+xj+cGQgDw3q+/5Vj+QeCDxYRKffZvEhan0gcMDhz+Mwz/2OeQv+GyKXuQqpufCoqt1LEDzN0my9QHPA54/CM/T0308h84xQUaLQrkCKM4OQB6A/BFANrv23Ju5FUiZ4Ulcafzf2n4qNpB9KFUfdao09jlZrr8O07OmH45z2DGurKLaz+YWyuIcHI8ypjxU6zYnnJuA6Z3IBsiMqOwSyM9zBIuc5/DhtbEFkBzId5+v5H5YX7cKxfjv8EdZJBxqEuDEbFhRZqz6zyd0IF55feKFF3s5E0fGitlf/unPmTBafMb5xMQ3SKIqUwsJuuOeDHOatwXE29OiUv2DdTdFzBASb3E7YzxTKeqTiUo1UGVx32ot8JaYxFzMDf3kxNv3w5Fw3QFhlmgFZSjwFmLaQDE3SR2JOX/REmS8wIzHX0bPRGIKULonQqzFbPk0esFx+e3Zy9lzL1qiPZkbEjdYC+XEjO88evXx6stk/ObD+MObL5Oz0eXZFV9A4+R41hNXbIHPv7fNiRXcoBMrRZnX6KBAEZwXSvslQxlakSiL3q6eh5V72eXdgPXsFooyx52B6FbHUnphfLA7njmeY01ow7BPnAWjhhdjGcklWhfi+qR32vt1L9rshUO7RHsCAQgCr4Vh7vwbXox7YpQrRseaitCJo9l2Afw8OxZt0QnYp+55m66QVR/nFc4zY246PXND/TZZxxx/Dr83iFtAzO3Us8YlyCO9wbqjKdSaaGv1nm8bHglvqV/moLSfPdrczyh9GV8zrL7dsx9t3+VB3mAzCm+reRrJjBvA4Fqu1+zdJ5s3DS9/rdByiU8juQSrfAPngk+U48+JHCwgd7hn3ebdJo+6fnosusnjrtVdaWmuqyXkFT/JSN5gfTe3b3go2tYbWxA2R+Gek7YTd4f33qdN1J0IQ8gHZadbjfHi4+TKT07DvwcK/0qVFla+76+Cocb7HWbjvLaWOei0gpRlg07++R/K/rhL
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/create-game.api.mdx b/docs/reference/http-api/create-game.api.mdx
index 89ac710..1adddff 100644
--- a/docs/reference/http-api/create-game.api.mdx
+++ b/docs/reference/http-api/create-game.api.mdx
@@ -5,7 +5,7 @@ description: "createGame"
sidebar_label: "createGame"
hide_title: true
hide_table_of_contents: true
-api: eJztmd1v2zYQwP8Vgi9rBsVxs27A3K6Dm6Wtu6YN4nR9CIz6JJ0lLhSpkid/LPD/Phwpf8QOhj0EeXJeYpHH43387uRc7qSt0QEpawa57MnMIRC+gwplIgkKL3s3kh+9HCXS4fcGPb2x+UL27sKjcpjLHrkGE5lZQ2iIt6CutcqC3pO/vTW85rMSK+BPtKhR9qRN/8aMZCJrx1aQQh/OZhl6vyXnySlTyESiaSo2qG5SrbJwUE2B2NaJU2jyYCUp0nyMze5HXcukvf0vdF5Fc1rlyhAW6Fgks2aiin0Dl4mslLnUsEDnHzgatlXFtj1nWZj/b1kHxPFbi6XWagTDV1LjzBAzy16tBW62FJlGa/YX55luvJrixUpzN5E5TqDRJHsstUxk2uQF0uPpUyZzWKF5NJXLZIunmxUEu3lbJ+leSu7FfIuAsw3Ny2W8wdfW+MjZafc5/8rRZ07VFLCQ1yWKWAS5KGIZPBLWrG2Q72PNbJbW0ZnN8YHdnbi0WrbP7Dmct96+6Hb3HRyYKWiVi7aWH88/dM66B93LHvRsU87GUj8jNeVgG0tXCPmCt+d18DosXqLJ4ylPQPilzoOjDGLw5xIW2kJY0BoL0Bc26GvMrbEz03Y0Y+mDVQZSzU8cy7dMaCJBO76VN9c3giOVqRoMxYUQXMtYZ/HTGRhj6SNCuCnG6YvxTV1bF41rPDrDGYtGbq1cwy2aTd/6bDS77LBQnmI/vlplPZGqggKvrf0IrohOrS8ZhC0ObGwmH1Wl+O5RspP3vvDEfosKslIZFJwVoXI0pCYLZQoxKxcCVlyICSiNeUdu4DrnBAfidqGMqR/tiF61xbam8YFyu1De893WiTaRgmyMzAHLA5ZPguVP+1h+siRAazsLfh5IPJD4JCS+eJjEiW3MgcMDh0/G4a/7HA45mYK/fGuV0Uvh0C9MJsDwN0lyiwOeBzyfCM/T0308+94zQdaISvkKKCsPQB6AfAogl7v23BuhVUil5cFabcPf2jVQKXvyBGp1gqZQBk+KMF1LpMescYoWsndzJyfKYQqexymj5WizOeRcRCw3ImsAS6J6lbAwTUJwYQ4TP7y1rgKSPfnh67XcD+PbVqEY/BH/CEuER0MCvBj3GyqtU/+EBPbEm6BPvApir8fimXVi/Ht4+m0srBFfMR3a7BZJNHXhIEd/1OGKSS29ryDbshlq9ScuAu/sAUIeJ0cQPDhXBZrjoSoMUONw32ojcE5MnhappR+8eH/RPxN+dUDYKTpBJQqcQ0ZrCFKbLxKR8hcrQTYIjCFjpWOR2wqU6YgYazGePk9ecVx+efF6/DKI1uiOU0viFhdCeTHmO5+9+Xz9bTh492nw6d234fnZ1fk1X0CD/GjcETxWivkOtnkxg1v0YqaoDBo9VCii80KZsGSpRCdy5TDY1Qlwcu+62kxhz+dQ1Rq3p6ab4ejOxLO7NeDcmWh27w8tu+u5ZJzr3ptE8rBub5wYF/dnguth4cSGlK+qiLM6MIQOQnsU5zE0/cuBTOR0ZbHsdk47P+/lnGPp0U3RHUPEkiBo4UpaRbl/OeiIM60YYGcbQi+ejbfL7sfxkWhLXcA++y9baCJbIdszTEtrb1d6UksnLTJHTAFDEAzixpNx/ALxXPgVhBdOy3RsEKLtEPd8W1cF4ZxOag0qjIIbp3kvNo8bLpnwkmE/2m4fxp4l95jejby7Y1e+OL1c8vL3Bh13lVEip+BUeEdwW0lW1cYN5xYXPD+Mb8zjtu9OQTexRnfenstkdYIH7DX9p+xoqw1efh5y60nb/yBU4QUqHcxCl5/JnpSJtCEaocmFtTupwRQNFCwbdfLPv/5yqWk=
+api: eJztmUtvGzcQgP8KwUvjYi0rDwSokqZQXCdRGieG5TQHQ4hmd0e7jLnkhpzVo4b+ezHk6mHJKHowfJIv1pLD4Ty+mZXHt9LW6ICUNYNc9mTmEAjfQ4UykQSFl71ryY9ejhLp8GeDnt7afCF7t+FROcxlj1yDicysITTEW1DXWmVB78kPbw2v+azECvgTLWqUPWnTH5iRTGTt2ApS6MPZLEPvt+Q8OWUKmUg0TcUG1U2qVRYOqikQ2zpxCk0erCRFmo+x2f2oa5m0t/+NzqtoTqtcGcICHYtk1kxUsW/gMpGVMhcaFuj8PUfDtqrYtqcsC/P/LeuAOH5rsdRajWD4SmqcGWJm2au1wPWWItNozf7iPNONV1M8X2nuJjLHCTSaZI+llolMm7xAejh9ymQOKzQPpnKZbPF0vYJgN2/rJN1JyZ2YbxFwuqF5uYw3+NoaHzl71n3Kv3L0mVM1BSzkVYkiFkEuilgGD4Q1axvk+1gzm6V1dGpzvGd3Jy6tlu0zew7nrbcvut19BwdmClrloq3lh/MPnbPuXveyez3blLOx1M9ITTnYxtIlQr7g7XkdvA6LF2jyeMoTEH6t8+Aogxj8uYCFthAWtMYC9LkN+hpzY+zMtB3NWPpolYFU8xPH8h0TmkjQjm/lzfWN4EhlqgZDcSEE1zLWWfx0CsZY+oQQbopx+mp8U9fWReMaj85wxqKRWytXcINm07e+GM0uOyyUp9iPL1dZT6SqoMAraz+BK6JT60sGYYsDG5vJJ1UpvnuU7OS9Lzyx36KCrFQGBWdFqBwNqclCmULMyoWAFRdiAkpj3pEbuM44wYG4XShj6kc7opdtsa1pvKfczpX3fLd1ok2kIBsjc8DygOWjYPl8H8vPlgRobWfBzwOJBxIfhcQX95M4sY05cHjg8NE4/G2fwyEnU/CXb60yeiUc+oXJBBj+JkluccDzgOcj4fns2T6efe+ZIGtEpXwFlJUHIA9APgaQy1177ozQKqTS8mCttuFv7RqolD15ArU6QVMogydFmK4l0mPWOEUL2bu+lRPlMAXP45TRcrTZHHIuIpYbkTWAJVG9SliYJiG4MIeJH95ZVwHJnvz47Uruh/Fdq1AM/ox/hCXCoyEBXoz7DZXWqX9CAnvibdAnXgexN2PxxDox/iM8/T4W1ohvmA5tdoMkmrpwkKM/6nDFpJY+VJBt2Qy1+gsXgXf2ACGPkyMIHpypAs3xUBUGqHG4b7UROCcmT4vU0i9efDjvnwq/OiDsFJ2gEgXOIaM1BKnNF4lI+YuVIBsExpCx0rHIbQXKdESMtRhPnyavOS4vX7wZvwqiNbrj1JK4wYVQXoz5zidvv1x9Hw7efx58fv99eHZ6eXbFF9AgPxp3BI+VYr6DbV7M4Aa9mCkqg0YPFYrovFAmLFkq0YlcOQx2dQKc3LsuN1PYszlUtcbtqelmOLoz8exuDTh3Jprdu0PL7nouGee6dyaRPKzbGyfGxf2Z4HpYOLEh5asq4qwODKGD0B7FWQxN/2IgEzldWSy7need7l7OOZYe3RTdMUQsCYIWrqRVlPsXg4441YoBdrYh9OLJeLvsfh0fibbUBeyz/6qFJrIVsj3DtLT2ZqUntXTSInPEFDAEwSBuPBnHLxDPhV9BeOG0TMcGIdoOcce3dVUQzumk1qDCKLhxmvdi87jmkgkvGfaj7fZh7Flyj+ldy9tbduWr08slL/9s0HFXGSVyCk6FdwS3lWRVbdxwbnDB88P4xjxu++4UdBNrdOftuUxWJ3jAXtN/yo622uDFlyG3nrT9D0IVXqDSwSx0+ZnsSZlIG6IRmlxYu5UaTNFAwbJRJ//8C/YMqWU=
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/create-solo-game.StatusCodes.json b/docs/reference/http-api/create-solo-game.StatusCodes.json
index c8bcfe5..073cbef 100644
--- a/docs/reference/http-api/create-solo-game.StatusCodes.json
+++ b/docs/reference/http-api/create-solo-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"201":{"description":"The created-and-started solo game","content":{"application/json":{"schema":{"type":"object","properties":{"gameId":{"type":"string"},"shortCode":{"type":"string"},"version":{"type":"integer"},"frame":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}},"required":["gameId","shortCode","version","frame"],"title":"SoloStarted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"201":{"description":"The created-and-started solo game","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"SoloStarted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/create-solo-game.api.mdx b/docs/reference/http-api/create-solo-game.api.mdx
index 83dd16f..478c4dd 100644
--- a/docs/reference/http-api/create-solo-game.api.mdx
+++ b/docs/reference/http-api/create-solo-game.api.mdx
@@ -5,7 +5,7 @@ description: "createSoloGame"
sidebar_label: "createSoloGame"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/delete-account.api.mdx b/docs/reference/http-api/delete-account.api.mdx
index 6e2f9ed..5a733df 100644
--- a/docs/reference/http-api/delete-account.api.mdx
+++ b/docs/reference/http-api/delete-account.api.mdx
@@ -5,7 +5,7 @@ description: "deleteAccount"
sidebar_label: "deleteAccount"
hide_title: true
hide_table_of_contents: true
-api: eJztVcFy2zgM/RUML5vsKHaaSffgdrvjOk7rbtJmEmd6yHgqSEJk1hKpkJAdb8b/vgNSdrLxfU89iSJI4OHhAXxStiGHrK2ZFGqgCqqIaZjntjWsEsVYejW4U5ekZoly5BtrPHk1eFInx6fyKcjnTjfiQQ3UdE6A8TagKUCzhwIZYUWOIHov1CZRp8dv9m9fau+1KcE60GaJlS6A7YKMSlRuDZNhuYNNU+k8YO7/9HLxSfl8TjXKitcNqYGy2U/KJYPGSYasI2hyzroXxzw7bUoBlNuC9g2JItPWwoCxPMxZL0klsr4mLNZifmy0oyJuXpEp4i3PyHTbFMjB1mVzhevKYtioKiqxurTBX2sWxq7MJ6w771+sNphV8ldiTedtValEYeUkqhh3EdGxznWDoVrG8sgRsnXCWFyN0BjLF4QhUuTp1vi2aayL4FpPzmBNkwjyxc4UI/n3TpMp/DdTScqOSu05iuaaHtouf11jSVNrL9CVMaldkEkwCbGJcsh0oWstsWfJKwEMwbPkDTXmc20IpCqgCzKs79cijdV8DQiOHlryDPeoKyp6IlTNldRtLAUeSS03G4HawRvcdaWfvTp63UlabTZy4e3xyb4sz0S22pou3DvgFyrXHrRhzDkBR+zWv7T6S6v/h1Y3r/G8Ht018dw+z3SRF/JcDVQfG90nU2pD/VBET3nrNK/V4O5J3WtHGXpSg7vZZvZsvJFqRGE+H9lJcM7cbEsm/xmhI6lsXJxbVyOrgfryfar2iTzvHMLkLA78BDzJC+IhHbY8t07/E0o4gI/BH7wPxz6kcGAdpH+Fvz9TsAa+U3Zj8wUxtE3psCB/2JOeySx/rjF/gRkb/Tetg+IlA8IiIBYxCeO6JHN0o0uD3DraR22AHlm0V0Fm+TcPny+HI/DbC2CX5MKkoEfMeSeDzBbrBDLbGnncwoEUc3GaQmFr1KYHkWtIl2+S98LLH6cf0jh1GnJHmWVY0FomTyoxDz5+m/64mXz6Ovn66cfNeHQ9nkoAnhSHaQ/kRY7FDtg8rHBBHlaa58Gjx5ogJg/ahC3Lc3JQaEcBVy/IU5t7G8jbKlL4mRgmh2HUwDgGGV5NVKKW5Hzk6bh30nu7x56g8uSW5I4wFpgxeJERssU7vJr0YFRpkYKzLZOHg/Slen9PD6FrG8B9Fb3r6I9VCrytKJtbu9j6ySz3O/IPhU+hMwCSJs5lIAbtNNZzjWF4d+qIPQXP3faf9HYSY3rkflOhNuKmdZXYYhveif7CzJZUQr9Kw8+tZzE+PUkqt67abGT7oSUn/TlL1BKdDvNWGjTZ6lZad0FrEWaeUyOQlli1Ueev3iBp6910OBtfjKdjtdn8C0Mbfi4=
+api: eJztVVFz2zYM/is4vizZKXbaZXtwu+5cx0ndJW0uca4POV8FSYjMWiIVErLj+fzfdyDlJIvf99QnUQQJfPjwAdwo25BD1tZMCjVQBVXENMxz2xpWiWIsvRrcqUtSs0Q58o01nrwabNTb4xP5FORzpxvxoAZqOifAeBvQFKDZQ4GMsCJHEL0Xapuok+M3+7cvtffalGAdaLPEShfAdkFGJSq3hsmw3MGmqXQeMPd/eLm4UT6fU42y4nVDaqBs9oNyyaBxkiHrCJqcs+7FMc9Om1IA5bagfUOiyLS1MGAsD3PWS1KJrK8Ji7WYHxvtqIibV2SKeMszMt02BXKwddlc4bqyGDaqikqsLm3w15qFsStzjnXn/bPVBrNK/kqs6aytKpUorJxEFeNTRHSsc91gqJaxPHKEbJ0wFlcjNMbyBWGIFHm6Nb5tGusiuNaTM1jTJIJ8sTPFSP6902QK/9VUkrKjUnuOormmh7bLX9dY0tTaC3RlTOopyCSYhNhEOWS60LWW2LPklQCG4FnyhhrzuTYEUhXQBRnW92uRxmq+BgRHDy15hnvUFRU9EarmSuo2lgKPpJbbrUDt4A3uutLPXh297iSttlu58Pvx231ZnopstTVduHfAL1SuPWjDmHMCjtitf2r1p1b/D61uX+N5Pbpr4rl9nukiL+S5Gqg+NrpPptSG+qGInvLWaV6rwd1G3WtHGXpSg7vZdvZsvJFqRGE+H3mS4Jy52ZVM/jNCR1LZuDizrkZWA/X521TtE3nWOYTJaRz4CXiSF8RDOmx5bp3+J5RwAB+DP3gfjn1I4cA6SP8Kf3+mYA18o+zG5gtiaJvSYUH+sCc9k1n+VGP+AjM2+m9aB8VLBoRFQCxiEsZ1SeboRpcGuXW0j9oAPbJor4LM8i8ePl0OR+B3F8AuyYVJQY+Y85MMMlusE8hsa+RxCwdSzMVpCoWtUZseRK4hXb5J3gsvf5x8SOPUacgdZZZhQWuZPKnEPPj4dfr9ZnL+ZfLl/PvNeHQ9nkoAnhSHaQ/kRY7FDtg8rHBBHlaa58Gjx5ogJg/ahC3Lc3JQaEcBVy/IU5t7G8jbKVL4mRgmh2HUwDgGGV5NVKKW5Hzk6bj3W+94jz1B5cktyR1hLDBj8CIjZId3eDXpwajSIgVnWyYPB+lL9f6aHkLXNoD7KnrX0R+rFHhbUTa3drHzk1nud+QfCp9CZwAkTZzLQAzaaaznGsPw7tQRewqeu+0/6T1JjOmR+02F2oib1lVii214J/oLM1tSCf0qDT+3nsW42Ugqt67abmX7oSUn/TlL1BKdDvNWGjTZ6VZad0FrEWaeUyOQlli1Ueev3iBp66fpcDq+GE/Harv9FzyJfio=
sidebar_class_name: "delete api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/eigeninteractive-engine-api.info.mdx b/docs/reference/http-api/eigeninteractive-engine-api.info.mdx
index 25514ad..907f8a8 100644
--- a/docs/reference/http-api/eigeninteractive-engine-api.info.mdx
+++ b/docs/reference/http-api/eigeninteractive-engine-api.info.mdx
@@ -16,7 +16,7 @@ import Export from "@theme/ApiExplorer/Export";
diff --git a/docs/reference/http-api/forfeit-game.StatusCodes.json b/docs/reference/http-api/forfeit-game.StatusCodes.json
index da46222..cea0106 100644
--- a/docs/reference/http-api/forfeit-game.StatusCodes.json
+++ b/docs/reference/http-api/forfeit-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Forfeit committed","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer"},"frame":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}},"required":["version","frame"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Forfeit committed","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/forfeit-game.api.mdx b/docs/reference/http-api/forfeit-game.api.mdx
index da6b31c..a9e6937 100644
--- a/docs/reference/http-api/forfeit-game.api.mdx
+++ b/docs/reference/http-api/forfeit-game.api.mdx
@@ -5,7 +5,7 @@ description: "forfeitGame"
sidebar_label: "forfeitGame"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-bots.api.mdx b/docs/reference/http-api/get-bots.api.mdx
index bb6b663..315ec74 100644
--- a/docs/reference/http-api/get-bots.api.mdx
+++ b/docs/reference/http-api/get-bots.api.mdx
@@ -5,7 +5,7 @@ description: "getBots"
sidebar_label: "getBots"
hide_title: true
hide_table_of_contents: true
-api: eJztl19T20YQwL/Kzr00dIRJ0qQPTpoOUEOcEsKAaR4YT7yS1tLF0p1ytzK4jL97Z+9k49h0+tLJE0/Id6v9+9tFe69sQw5ZWzPMVV8VxEeWvUoUY+FV/0aFn+NEOfKNNZ686t+rl8+fy5+cfOZ0I2+rvhqVBKllyJCxsoVKVGYNk2ERxaapdBYMHXz1In+vfFZSjfLEi4ZUX9n0K2WsEtU4cYt1tJaKCw9S6BwuVKI0U+3/+22db8h4dtoUapmo1pMzWNOjl7n2TYWL83+7xzkyumtXPdzerK4TZdqqUuNl0gX4FzmvY8SdIm2YCnKiySFTPqh0odNq01ZqbUVoRCSzZqqL3UCX8jp9a7WjXOzrXG2E9X0Qmy5v+7XtxNriOFGsWdwSCtRy22DaobEh5EVqmahXjwEyNHOsdA6igzz/f4CQc9Y9WqjM5o9UMFFk2lpCMJYPM9ZzidpYviTMBS26a0KQ4fCCTB7f8oxM100u6RIAYzwXuKgshoOqogKrjzboa83M2FtzGvNvLH+w2mDMcIE1nQgmicLKiVW5XFtExzrTDRqOB8eOkK2TjMWnYzTG8hlhsBTzdG182zTWRedWIHRJ3zgZ4Yyk6lOnyeT+k6kkZEeF9hxHweWqyInSNRY0svYMXRGDWhsZhitJbCToTNdabI+TrbofgmeJG2rMSm0IpCqgczKspwttCrgtF4ArLmCKuqK8px7IGkiBj6WW2wzG0o+3RC+7YbWm8cUujR+192LbOugKCWxjZp6wfMLyh2D5yy6W55YBq8rehjifSHwi8YeQ+OpxEqe2NU8cPnH4QzhcbvvzsI3UxKXtFhShCrlUfXWAjT4gU2hDB2kU9JS1TvNC9W/u1VQ7StHL1/l4OX64vJIyRCIfRNbslczNqlbhU5zQkZQ0PpxYVyOrvvrweaR2M3jSKYThH/F7IgFPhgE9TA5bLq3Tf4fa9eEo6IO3QezdBJ5ZB5Pfw6/fJmANfKb0ymYzYmibwmFOfq8nzZJafl9jtrkTNfpPCkuReFES5sHjuOCogS7I7F/pwiC3jna9NkB3LNBVssH95OH9x8Nj8KsXwM7JAZcEdIcZr+uf2nyRQCozAtgGgQlmonQCua1Rmx7EXMNk/iJ5K3n59dW7yZsg2pDbl31xRgvQHiZi89nRp9GXq+Hp+fD89MvV4PhyMBIDPMz3Jj2QDTOWO/jm4RZn5OFWcxk0eqwJYvCgTTiyXJKDXDsKfvUCl9pMbUjeCkXJz9AwOQwzBgbRyOHFUCVqvtrf1PPey97rneyJV57cnNw+xgIzBi0yO1b+Hl4Me3BcaUHB2ZbJw7PJJr8/T/ag6xfAXYredOmPVQp5u6W0tHa20pNaPuiSvyf5lHQGh6R7M5mEgZ3Geq4xTO2OjoIYujb7LrA1XEx3fNBUqMM62satN7bgjZAXxrQEoZL1Tlhaz3J9fy9hXLtquZTjby056c1xoubodBiy0pzJillp2xktBMoso0aafY5VGxnf+scjLb0eDKeDkVou/wHaM93o
+api: eJztl19T20YQwL/Kzb00dIQhDdMHJ02HUEOcEsKAaR4YT7yS1tLG0p1ytzK4jL97Z+9k49h0+tLJE0/Id6v9+9tF+6Btgw6YrBnmuq8L5HeWvU40Q+F1/1aHn+NEO/SNNR697j/oXw4P5U+OPnPUyNu6r0clqtSyyoChsoVOdGYNo2ERhaapKAuGDr56kX/QPiuxBnniRYO6r236FTPWiW6cuMUUraXiwqMUOAcLnWhirP1/v035hoxnR6bQy0S3Hp2BGp+8zMk3FSwu/u0e5sDgblz1eHu7uk60aatKj5dJF+Bf6DzFiDtFZBgLdKLJAWM+qKigtNq0lVpbIRgRyayZUrEb6FJex28tOczFPuV6I6zvg9h0eduvbSfWFseJZmJxSyjQy22DaYfGhpAXqWWij54CZGjmUFGuRAd6/v8AQeese7JQmc2fqGCi0bS1hGAsH2dMc4naWL5CyAUtvG9CkOHwEk0e3/IMjDdNLukSAGM8l7CoLISDqsICqo826GvNzNg7cxbzbyx/sGQgZriAGk8Fk0RD5cSqXK4tgmPKqAHD8eDEIbB1krH4dALGWD5HCJZinm6Mb5vGuujcCoQu6RsnI5ihVH3qCE3uP5lKQnZYkOc4Cq5WRU401VDgyNpzcEUMam1kGK4ksZGgc6pJbI+TrbofK88St6ohK8mgkqooytEwTRdkCnVXLhSsuFBToArznn4kayAFPpFabjMYSz/eEr3qhtWaxpe7NH4k78W2daorpGIbM/OM5TOWPwTLV7tYXlhWUFX2LsT5TOIziT+ExKOnSZza1jxz+MzhD+Fwue3P4zZSI5e2W1CEKuBS9/UBNHSApiCDB2kU9Ji1jnih+7cPekoOU/DydT5ejh8vr6UMkchHkTV7JXOzqlX4FEdwKCWND6fW1cC6rz98HundDJ52CtXwj/g9kSiPhhV4NTluubSO/g6166t3QZ96E8TeTtQL69Tk9/Drt4myRn3G9NpmM2TVNoWDHP1eT5oltfy+hmxzJ2roTwxLkXhRIuTB47jg6AEVaPavqTDArcNdr43CexboKtngfvLq/cfjE+VXLyg7R6e4RIX3kPG6/qnNF4lKZUYotkFgApkonajc1kCmp2Ku1WT+Mnkjefn16O3kdRBt0O3LvjjDhSKvJmLzxbtPoy/Xw7OL4cXZl+vBydVgJAZ4mO9Neko2zFju4JtXdzBDr+6Iy6DRQ40qBq/IhCPLJTqVk8PgVy9wSWZqQ/JWKEp+hobRQZgxahCNHF8OdaLnq/1NH/Ze9Q53sideeXRzdPsQC8wQtMjsWPl7fDnsqZOKBAVnW0avXkw2+f15sqe6flGwS9HrLv2xSiFvd5iW1s5WelLLB13y9ySfks7gkHRvJpMwsNNYzzWEqd3RUSCrrs2+C2wNF+M9HzQVUFhH27j1xha8FfLCmJYgdLLeCUvrWa4fHiSMG1ctl3L8rUUnvTlO9BwchSErzZmsmJW2neFCoMwybKTZ51C1kfGtfzzS0uvBcDYY6eXyH9O93eQ=
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-frames.StatusCodes.json b/docs/reference/http-api/get-frames.StatusCodes.json
index ca48d43..adfe4bd 100644
--- a/docs/reference/http-api/get-frames.StatusCodes.json
+++ b/docs/reference/http-api/get-frames.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The projected frames, version-ascending","content":{"application/json":{"schema":{"type":"object","properties":{"frames":{"type":"array","items":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}}},"required":["frames"],"title":"Frames"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"The projected frames, version-ascending","content":{"application/json":{"schema":{"type":"object","properties":{"frames":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}}},"required":["frames"],"title":"Frames"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-frames.api.mdx b/docs/reference/http-api/get-frames.api.mdx
index d832682..f2820a6 100644
--- a/docs/reference/http-api/get-frames.api.mdx
+++ b/docs/reference/http-api/get-frames.api.mdx
@@ -5,7 +5,7 @@ description: "getFrames"
sidebar_label: "getFrames"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-friends-games.api.mdx b/docs/reference/http-api/get-friends-games.api.mdx
index 46ff2dd..8663e8b 100644
--- a/docs/reference/http-api/get-friends-games.api.mdx
+++ b/docs/reference/http-api/get-friends-games.api.mdx
@@ -5,7 +5,7 @@ description: "getFriendsGames"
sidebar_label: "getFriendsGames"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-game-session.ParamsDetails.json b/docs/reference/http-api/get-game-session.ParamsDetails.json
new file mode 100644
index 0000000..5c4016a
--- /dev/null
+++ b/docs/reference/http-api/get-game-session.ParamsDetails.json
@@ -0,0 +1 @@
+{"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"gameId","in":"path"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-game-session.RequestSchema.json b/docs/reference/http-api/get-game-session.RequestSchema.json
new file mode 100644
index 0000000..c96bced
--- /dev/null
+++ b/docs/reference/http-api/get-game-session.RequestSchema.json
@@ -0,0 +1 @@
+{"title":"Body"}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-game-session.StatusCodes.json b/docs/reference/http-api/get-game-session.StatusCodes.json
new file mode 100644
index 0000000..5d20ab9
--- /dev/null
+++ b/docs/reference/http-api/get-game-session.StatusCodes.json
@@ -0,0 +1 @@
+{"responses":{"200":{"description":"The caller's current session snapshot","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-game-session.api.mdx b/docs/reference/http-api/get-game-session.api.mdx
new file mode 100644
index 0000000..d960139
--- /dev/null
+++ b/docs/reference/http-api/get-game-session.api.mdx
@@ -0,0 +1,69 @@
+---
+id: get-game-session
+title: "getGameSession"
+description: "getGameSession"
+sidebar_label: "getGameSession"
+hide_title: true
+hide_table_of_contents: true
+api: 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
+sidebar_class_name: "get api-method"
+info_path: docs/reference/http-api/eigeninteractive-engine-api
+custom_edit_url: null
+---
+
+import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
+import ParamsDetails from "@theme/ParamsDetails";
+import RequestSchema from "@theme/RequestSchema";
+import StatusCodes from "@theme/StatusCodes";
+import OperationTabs from "@theme/OperationTabs";
+import TabItem from "@theme/TabItem";
+import Heading from "@theme/Heading";
+import Translate from "@docusaurus/Translate";
+
+
+
+
+
+
+
+
+
+
+getGameSession
+
+
+ Request
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/reference/http-api/get-game.api.mdx b/docs/reference/http-api/get-game.api.mdx
index 17331ce..fb9b92c 100644
--- a/docs/reference/http-api/get-game.api.mdx
+++ b/docs/reference/http-api/get-game.api.mdx
@@ -5,7 +5,7 @@ description: "getGame"
sidebar_label: "getGame"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-health.api.mdx b/docs/reference/http-api/get-health.api.mdx
index 3c31763..d12a8cd 100644
--- a/docs/reference/http-api/get-health.api.mdx
+++ b/docs/reference/http-api/get-health.api.mdx
@@ -5,7 +5,7 @@ description: "Public, unauthenticated liveness check. Performs no I/O and reads
sidebar_label: "Liveness probe"
hide_title: true
hide_table_of_contents: true
-api: eJztVcFu20YQ/ZXBXmoLFOUYbQ90msKxHVttExuVihwMIxySY3EjaofZHcpWBP17MUvKdWL01mN5IXcxO/P2zZvHreGWPIplN61MZhYkV4SN1CYxgotgslszbNwlJlDZeSsbk93eJaaiUHrb6lmTmZuuaGyZQOewk5qc2BKFKmjsmhyFAGVN5TKFG/L37FcBHMN0cg3oKvCEVdwo2d3bRdcDSiAwIBwfHcGK0AVg12xAahSQmuCB/ZI82AAVtQ1vqOpzcSdYNJTCVKBiCjAaOZbRCOyq3Z8/f5XEHAtcEZx3Xg/AdfGZSgkJsAe9A6AnKNl7KqXZPGGjKoUZ+TVVkDseB2FPeQozvCcQhhKbBh6s1NwJIAgvyZ0AQoFVv1DEduHYUwUepSavmBx40vJUpSYxnkLLLlAw2dYcHx3p61u65//OQCC/tm5hElOyE3Kip7FtG+2IZTf5HDTF1oSyphXql2xaMpnhyIBJTOtVFmJ7AEFQuvAsLojXArudIv3SWU+VCmWIu0uMWGk0cJDOTp/ErEhqHlSmRVBqk5lJvRfcXl4zxdWXvreeCgz0rHgt0mpwDDKZKQg9eZMMH+/Yr1BMZn77ODffi/QU3g0JYXretyOBQE4AA+SnndTs7dfIUgZvYz54HcPe5HDAHvJf4+qXHNjBRypmXC5JoGsXHisKh6nZJaZguVph+QwztvZ32pjEWEVRE1YRscN4gwu7IDee2YVD6Ty9RO2AHoW8wwYKlh8CXL0/PYOwPwC8jiIioEcsBbQnFAQKrjYJFNw5lV4MyLHUpDlUvELrUui5hnz9KnmtvPz845v8JIa25McFCyxpoxLLtebB2+v5p9n08sP0w+Wn2cXZnxdzLSDT6jBPQTVJbmEdRWwBHnBJIQ5DzBh02vrLg3Vxi6P+K6szZtmlUVPW3XMkb1BR5GfqhLyiXxNc9EVOb6YmMWvyoefpKD1Of3rBnqLSkSA/xr7BgjFLHH56SpXCWWNVCuogFOAgn2BrJ33AZJQfwqB1wJcqOhno77sUeXugomZe7vMULJOB/EPlU+kcf2OVUTstB1lhHM9BHX/sDbT1XLwQx/afIf/fgv9LCx4mV+hRJm2D1ml3Ot8o5b1z3Zr66c9YcxDd2W5VFn/5ZrfT7S8d+eFvuUZv9Y662iV7D8hut2ZJGx3ysqRWbXGNTdd7xneOvbt7ZqGXF3Oz2/0NwD2t4g==
+api: eJztVU1v20YQ/SuDvdQ2KEpJix7oNIVjO7b6ERuVihwMIxySI3EjaofZHcpWBf33YpaU68TorcfyQu5idubtmzePO8MteRTLblqZzCxJrgkbqU1iBJfBZHdm2LhPTKCy81a2Jru7T0xFofS21bMmM7dd0dgygc5hJzU5sSUKVdDYDTkKAcqaylUKt+QX7NcBHMN0fAPoKvCEVdwo2S3ssusBJRAYEF5PJrAmdAHYNVuQGgWkJnhgvyIPNkBFbcNbqvpc3AkWDaUwFaiYApycOJaTE7Dr9nD+4lUScyxxTXDReT0AN8VnKiUkwB70DoCeoGTvqZRm+4SNqhRm5DdUQe54FIQ95SnMcEEgDCU2DTxYqbkTQBBekTsFhAKrfqGI7dKxpwo8Sk1eMTnwpOWpSk1iPIWWXaBgsp15PZno62u65//OQCC/sW5pElOyE3Kip7FtG+2IZTf+HDTFzoSypjXql2xbMpnhyIBJTOtVFmJ7AEFQuvAsLojXAvu9Iv3SWU+VCmWIu0+MWGk0cJDOXp/ErElqHlSmRVBqk5lxfRDcQV4zxdWXXlhPBQZ6VrwWaTU4BpnMFISevEmGj/fs1ygmM798nJtvRXoG74eEML3o25FAICeAAfKzTmr29q/IUgbvYj54E8Pe5nDEHvKf4+qnHNjBRypmXK5IoGuXHisKx6nZJ6ZguV5j+QwztvZX2prEWEVRE1YRscN4g0u7JDea2aVD6Ty9RO2AHoW8wwYKlu8CXP9+dg7hcAB4E0VEQI9YCmhPKAgUXG0TKLhzKr0YkGOpSXOoeI3WpdBzDfnmVfJGefnxh7f5aQxtyY8KFljRViWWa82jdzfzT7Pp1Yfph6tPs8vzPy7nWkCm1XGegmqS3NI6itgCPOCKQhyGmDHotPWXB+viFkf9V1ZnzLJLo6asW3Akb1BR5GfqhLyi3xBc9kXObqcmMRvyoedpkn6fTl6wp6h0JMiPsG+wYMwSh5+eUqVw3liVgjoIBTjKx9jacR8wPsmPYdA64EsVnQ70912KvD1QUTOvDnkKlvFA/rHyqXSOvrLKqJ2Wg6wxjuegjt8OBtp6Ll6IY/fPkP9vwf+lBQ+TK/Qo47ZB67Q7nW+U8t657kz99GesOYju7HYqiz99s9/r9peO/PC33KC3ekdd7ZODB2R3O7OirQ55WVKrtrjBpus94xvH3t8/s9Cry7nZ7/8GtIet3g==
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-lobby.api.mdx b/docs/reference/http-api/get-lobby.api.mdx
index 021f0f6..559d376 100644
--- a/docs/reference/http-api/get-lobby.api.mdx
+++ b/docs/reference/http-api/get-lobby.api.mdx
@@ -5,7 +5,7 @@ description: "getLobby"
sidebar_label: "getLobby"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-my-games.api.mdx b/docs/reference/http-api/get-my-games.api.mdx
index bddf82c..d96dcf5 100644
--- a/docs/reference/http-api/get-my-games.api.mdx
+++ b/docs/reference/http-api/get-my-games.api.mdx
@@ -5,7 +5,7 @@ description: "getMyGames"
sidebar_label: "getMyGames"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-my-rating-history.api.mdx b/docs/reference/http-api/get-my-rating-history.api.mdx
index 788f7c6..0a6aa82 100644
--- a/docs/reference/http-api/get-my-rating-history.api.mdx
+++ b/docs/reference/http-api/get-my-rating-history.api.mdx
@@ -5,7 +5,7 @@ description: "getMyRatingHistory"
sidebar_label: "getMyRatingHistory"
hide_title: true
hide_table_of_contents: true
-api: eJztWFFz0zgQ/isavUBv3KRwcA+B4ybkQglQ6LRleOhkyMbe2CKyZKR1Ul8n//1mpThpk8C93PDUp8TSanf1fd9usr6VtkIHpKwZZbInc6Sz5gJImfyt8mRdIxNJkHvZu5ZnKMeJrMBBiYSO126lTwssQfZuJTUVyp705JTJ5SqRDr/XymEmezPQHhNpoGSLylotE6mM7MnvNbpGrpIDjpQhzNHJRJbKqLIuZe9JIku4id+fnyQywxnUmmTv6clP4mlVKtoJOGZzX1nj0XPMpycn/JGhT52qGA/Zk1cFihS0RvfICxdQEdrmiTC4RE9ippxnx6k1hIbYAVSVVmkAtPvNs5cDN7PTb5jywcox/KRiDsUa8a0hOAfMgCIs/X87yKFEpvEAFwHzQxuZ8pWG5jXOrMMD6G9N+jNC91OLQQEm/4GT1CEQZn06tH2PvOv2HkmrlPs57iS0G/1uqHEiSZHmWPdEPTTEItiN2xLwo2N8YpXIZ4e0MjIL0CoT7A//T1Wgc9YdpC61Ge5vJBIN18e1NJb6KakFY2IsXSBkLCa8qcKFw+I5miye8gSEn6uMoQvFEu5zDo22EBa0xhz0mQ3+ajM3dmlOucKCo3dWGZhqfmL63tSamQPtOCpvbiKCI5WqCgzFhQHTZV1LnHUDMMbSB4QQKeL02fi6qqyLydUeHRf3GvQ7K1cwRyMTOXMKTeY/Gc1XdpgrT7HPXbSEJ1KVkOOVtR/A5fFSmyCjsMXAJtIB4QfuIZixNO7z3hee+N6ihLRQBgWzIlSGhtSs4Y6xLBoBrS7EDJTGrCO3EhsywQPmclePkfrxjunFum9t1PhkX41nynuObZ1YEynIRmQeZPkgy18iy9/3ZfnRkgCt7TLc80GJD0r8JUp8dliJM1ubBx0+6PCX6HC1m8/BUatEKux6EGOBARWyJ7tQqS6aXBnsltiNk8hxsTnlMa2doiYMZDPlcAoeZe96zGNOu3nJ9ESlbk02miyIqpZDfp4iuPDnOn55Y10JJHvy3ZcruY/sm7VDMfo7/s9IhEdDAryY9GsqrFP/BE574nXwJ14Gs1cT8dg6MfkrPP05EdaILzi9tOkcSdRV7iBDf9ThIppaeltCenc6qtR7bNrBrkDIQsbrqW+ocjTHlyo3QHUcG+5nbQTeEItRi6mlR168PesPhG8PCLtAJ6hAgTeQ0kYXU5s1iZhy7xBkg8EEUnY6EZktQZmOiFiLyeJJ8pJx+ePZq8mLYFqhO55aEnNshPJiwjEfv/509fVydPpx9PH06+VwcDG84gA0yo4mHcFDaOQ+5ObFEuboxVJRETx6KFHEywtlwpKlAp3IlMOQVyfoVZmZDeC1EmV8RobQQeg9YhiD9M9HMpELdD7idNJ52nm+hx5n5dEt0B1DJJggeOGe0ubbPx91xEArloKzNaEXjyd3xfzb5Eis60jAvoperOGPLAXcljgtrJ23fqaWumvwjxhPhjMkxFWdcofsxOnXUwmhm6/VkSOJs0bE+hPbArx3y43SCG+oW2lQhr3VLozSsTivWYahl/ONQgnHTnS3RMeJLKwntr695St+dnq14uX4OoLrNlOe29P27cUcm+3LkgXomjMJr0p+YNq+59jajvnBqdDuuR0kbZVwwHion6ZY3T219xPIXjZ96XR4JVerfwGI01sI
+api: eJztWE1zGjkQ/SsqXRJvjcH52gPJZouwxCEbJy6bVA4uKjQzzYxijTSResCzLv77VksM2ECyl62cfIKRWt2t91439NxKW6EDUtaMMtmTOdJZcwGkTP5OebKukYkkyL3sXckzlJNEVuCgRELHa7fSpwWWIHu3kpoKZU96csrkcpVIh99r5TCTvTloj4k0ULJFZa2WiVRG9uT3Gl0jV8kBR8oQ5uhkIktlVFmXsvckkSXcxO8vThKZ4RxqTbL39OQn8bQqFe0EnLC5r6zx6Dnm05MT/sjQp05VjIfsyXGBIgWt0T3ywgVUhLZ5Igwu0ZOYK+fZcWoNoSF2AFWlVRoA7X7z7OXAzezsG6Z8sHIMP6mYQ7FGfGsIzgEzoAhL/98OciiRaTzARcD80EamfKWheYNz6/AA+luT/pzQ/dRiUIDJf+AkdQiEWZ8Obd8j76q9R9Iq5X6OOwntRr8bapJIUqQ51j1RDw2xCHbjtgT86BifWCXy+SGtjMwCtMoE+8P/UxXonHUHqUtthvsbiUTD9XEljaV+SmrBmBhLFwgZiwlvqnDhsHiOJounPAHh5ypj6EKxhPucQ6MthAWtMQd9ZoO/2lwbuzSnXGHB0XurDMw0PzF9b2vNzIF2HJU3NxHBkUpVBYbiwoDpsq4lzroBGGPpA0KIFHH6bHxdVdbF5GqPjot7DfqdlTFco5GJnDuFJvOfjOYrO8yVp9jnLlrCE6lKyHFs7QdwebzUJsgobDGwiXRA+IF7CGYsjfu894UnvrcoIS2UQcGsCJWhITVvuGMsi0ZAqwsxB6Ux68itxIZM8IC53NVjpH6yY3qx7lsbNT7ZV+OZ8p5jWyfWRAqyEZkHWT7I8pfI8tm+LD9aEqC1XYZ7PijxQYm/RInPDytxbmvzoMMHHf4SHa528zk4apVIhV0PYiwwoEL2ZBcq1UWTK4PdErtxEjkuNqc8prVT1ISBbK4czsCj7F1NeMxpNy+ZnqjUrclGkwVR1XLIzzMEF/5cxy9vrSuBZE++/zKW+8i+XTsUo7/i/4xEeDQkwItpv6bCOvVP4LQn3gR/4lUwez0Vj60T0z/D0x9TYY34grNLm14jibrKHWTojzpcRDNL70pI705Hlfobm3awKxCykPF66huqHM3xpcoNUB3HhvtZG4E3xGLUYmbpkRfvzvoD4dsDwi7QCSpQ4A2ktNHFzGZNImbcOwTZYDCFlJ1ORWZLUKYjItZiuniSvGJcfn/+evoymFbojmeWxDU2Qnkx5ZiP33waf70cnX4cfTz9ejkcXAzHHIBG2dG0I3gIjdyH3LxYwjV6sVRUBI8eShTx8kKZsGSpQCcy5TDk1Ql6VWZuA3itRBmfkSF0EHqPGMYg/fORTOQCnY84nXSedU720OOsPLoFumOIBBMEL9xT2nz756OOGGjFUnC2JvTi8fSumH+bHol1HQnYV9HLNfyRpYDbEmeFtdetn5ml7hr8I8aT4QwJcVWn3CE7cfr1VELo5mt15EjirBGx/sS2AO/dcqM0whvqVhqUYW+1C6N0LM4rlmHo5XyjUMKxE90t0UkiC+uJrW9v+YqfnV6teDm+juC6zZTn9rR9e3GNzfZlyQJ0zZmEVyU/MG3fc2xtJ/zgVGj33A6Stko4YDzUT1Os7p7a+wlkL5u+dDocy9XqX4CVWwQ=
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-my-ratings.api.mdx b/docs/reference/http-api/get-my-ratings.api.mdx
index 7ba7317..100a13a 100644
--- a/docs/reference/http-api/get-my-ratings.api.mdx
+++ b/docs/reference/http-api/get-my-ratings.api.mdx
@@ -5,7 +5,7 @@ description: "getMyRatings"
sidebar_label: "getMyRatings"
hide_title: true
hide_table_of_contents: true
-api: eJztV01v20YQ/SuDvSQuaClJ0x6UNIXiOo5SOzFsGTkYQjQkx+RG5C6zO5SsGvrvxexSkiMZ6KXwySeTu8P5eO/NyHOnbEMOWVszytVAFcRnywtkbQqvEsVYeDW4VmekJoly5BtrPHk1uFOvXryQPzn5zOlGHKiBGpcEGVYVuWcestY5MgwuuIOGHDTWVipRmTVMhuV7bJpKZyGB/ncvTu6Uz0qqUZ542ZAaKJt+p4xVohon6bKOKbguz60hOodLlSjNVPv/dhDS2Vp5dtoUapWour13bNo6JSfHXhc/5bW9ybVvKuyQu2ehDVMRTdomR6Z8yA9drwTdH612lAveHU51q9ZBd0Pc9zdJFGuuxGF3u9p1uIZqz9SL7SpRrx+ic2TmWOkcxBN5/v+YI+esexD5zOa0f5EoMm0thRjLw4z1nFQizxeEuRBOt00oNRyek8njV56R6SoCJbKI9ZzjsrIYDqqKCqzObPDXmpmxC3OCdef9k9UG00reCqzpQ1sJK1g5iSqXm4joWGe6QcPx4MgRsnWCWHw6QmMsnxKGSBGnK+PbprEuJtd6cgZr6kC/dzLGGRmVqBunyeT+i6mkZEeF9hx792JNdaJ0jQWNrT1FV8SiNkFG4UqATUQQdKprLbEnyQ7vQ/AsdUONWakNgbACOifD+mYpzbwol4BrXcAN6oryntqK61gIPhIud5UYqZ/smF50o2Wjxpf7ajzT3kts66AjEthGZJ5k+STLR5Hlr/uy/GwZsKrsItT5pMQnJT6KEl8/rMQb25onHT7p8FF0uNrNZ2d9qIlL260VIi3kUg1UHxvdJ1NoQ/2a+m5j7ilrnealGlzfqRvtKEVPanA9WU22l5fCSBTn1mQjw5K5WdMm7ymhI2E3PnywrkZWA/Xp61jtg/mhcwijv+K/Fgl42WDQw3TYcmmd/ifQOID3wR+8DWbvpvDcOpj+Gd7+mII18JXSS5vNiKFtCoc5+YOe9E1q+WON2f2lpdF/U9haJIuSMA8Zi6AEdV2QObzUhUFuHe1nbYBuWfRXQWr5mYePZ8Mj8OsPwM7JAZcEdIsZb6SQ2nyZQCrjAtgGgylm4nQKua1Rmx5ErGE6f5m8FVx+f/1u+iaYNuQOU8swoyVoD1OJ+fz9l/G3y9HJ59Hnk2+Xx0cXx2MJwKP8YNoDWQ0j6SE3DwuckYeF5jJ49FgTxOJBm3BkuSQHuXYU8uoFiWpzYwN4a1UKPiPD5DCMGziOQYbnI5WoOTkfcXrRe9X7bQ89ycqTm5M7xEgwY/AiY2Sd7/B81IOjSodl1rZMHp5P76v4l+kBdK0DuK+iNx38kaWA24LS0trZ2k9qud+BfyB4CpwhIWnkTIZi0E5jPdcYBninjoIYzpawbbmfyttIjOmW+02F2oRN1IWtN7bjtegvzG0pJTRtnDrrfbG0nsXs7k6KunLVaiXHP1py0qmTRM3R6TB9pVWTtYKliWe0FIlmGTUyAOZYtVHxO79I0uCbYXFyPFar1b+7dsxK
+api: eJztV01v20YQ/SuDvSQuaMlpgh6UNIXiOo4SyzFsBTkYQjQkx+RG5C6zO5StGvrvxexSkiMZ6KXIySeTu8P5eO/NyHOvbEMOWVszytVAFcTj5SWyNoVXiWIsvBpcqzGpaaIc+cYaT14N7tXvR0fyJyefOd2IAzVQk5Igw6oi98xD1jpHhsEFd9CQg8baSiUqs4bJsHyPTVPpLCTQ/+7Fyb3yWUk1yhMvG1IDZdPvlLFKVOMkXdYxBdfluTVE53CpEqWZav/fDkI6WyvPTptCrRJVtw+OTVun5OTY6+KnvLY3ufZNhR1yDyy0YSqiSdvkyJQP+bHrlaD7o9WOcsG7w6lu1TroboiH/qaJYs2VOOxuV7sO11DtmXqxXSXq1WN0jswCK52DeCLP/x9z5Jx1jyKf2Zz2LxJFpq2lEGN5mLFekErk+ZIwF8LprgmlhsMLMnn8yjMyfYlAiSxiPRe4rCyGg6qiAquxDf5aMzf21pxi3Xn/aLXBtJK3Amt631bCClZOosrlJiI61plu0HA8OHaEbJ0gFp+O0RjLZ4QhUsTpi/Ft01gXk2s9OYM1daA/OJngnIxK1I3TZHL/2VRSsqNCe469e7mmOlG6xoIm1p6hK2JRmyCjcCXAJiIIOtO1ltjTZIf3IXiWuqHGrNSGQFgBnZNhfbOUZr4tl4BrXcAN6oryntqK60QIPhYud5UYqZ/umF52o2Wjxhf7ahxr7yW2ddARCWwjMk+yfJLlL5Hly31ZnlsGrCp7G+p8UuKTEn+JEl89rsQb25onHT7p8JfocLWbz876UBOXtlsrRFrIpRqoPja6T6bQhvo19d3G3FPWOs1LNbi+VzfaUYqe1OB6uppuL6+EkSjOrclGhiVzs6ZN3lNCR8JufHhvXY2sBurj14naB/N95xBGf8d/LRLwssGgh9mw5dI6/U+gcQDvgj94E8zezuC5dTD7K7z9OQNr4CulVzabE0PbFA5z8gc96ZvU8ocas4dLS6M/UdhaJIuSMA8Zi6AEdV2QObzShUFuHe1nbYDuWPRXQWr5mYcP4+Ex+PUHYBfkgEsCusOMN1JIbb5MIJVxAWyDwQwzcTqD3NaoTQ8i1jBbvEjeCC5/vHo7ex1MG3KHqWWY0xK0h5nEfP7u8+Tb1ej0fHR++u3q5PjyZCIBeJQfzHogq2EkPeTm4Rbn5OFWcxk8eqwJYvGgTTiyXJKDXDsKefWCRLW5sQG8tSoFn5FhchjGDZzEIMOLkUrUgpyPOB31XvaO9tCTrDy5BblDjAQzBi8yRtb5Di9GPTiudFhmbcvk4fnsoYp/mx1A1zqA+yp63cEfWQq43VJaWjtf+0kt9zvwDwRPgTMkJI2cyVAM2mms5xrDAO/UURDDeAnblvupvI3EmO6431SoTdhEXdh6Yztei/7C3JZSQtPGqbPeF0vrWczu76WoL65areT4R0tOOnWaqAU6HaavtGqyVrA08ZyWItEso0YGwAKrNip+5xdJGnwzLE5PJmq1+he0yMxG
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-player-games.api.mdx b/docs/reference/http-api/get-player-games.api.mdx
index 8bf1810..dd21a6f 100644
--- a/docs/reference/http-api/get-player-games.api.mdx
+++ b/docs/reference/http-api/get-player-games.api.mdx
@@ -5,7 +5,7 @@ description: "getPlayerGames"
sidebar_label: "getPlayerGames"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-player-ratings.api.mdx b/docs/reference/http-api/get-player-ratings.api.mdx
index 5777c6b..c88c242 100644
--- a/docs/reference/http-api/get-player-ratings.api.mdx
+++ b/docs/reference/http-api/get-player-ratings.api.mdx
@@ -5,7 +5,7 @@ description: "getPlayerRatings"
sidebar_label: "getPlayerRatings"
hide_title: true
hide_table_of_contents: true
-api: eJztWN9v2zYQ/lcOfGkyKHbbdXtQuw5ulqbu0jZIXPQhMOqzdJbYSKRKnpx4gf/34UjJcWMDexn6lCeL5PF+fPfdyac7ZRtyyNqaca5SVRCfV7gid4GsTeFVohgLr9IrFfe9miaqQYc1sazSqzvls5JqVOmd4lVDKlWenTaFSlStzRmZgkuVPlsnytH3VjvKVcqupUQZrEW8CZrHuUqUNrJGLtV6KvK+scaTF93Pnz6Vn5x85nQjHqtUTUpkiPefeMha58gwuOA8NOSgsbZSicqsYTIsCrBpKp2FkIffvGjZE4Gdf6OMVaIaJwCxjj64DpV7QXQOV+I4U+3/W0FwZweodaLqdmvbtPWcnGx7Xfzg1/1Jrr3EHfO0JaENUxFF2iZHpnzE+45/SMeV6nCqW9UbfWhiW980Uay5EoXd6fqhwh6qHVEvsutEvdiXz7FZYqVzEE3k+f/LHDln3V7kM5vTPu6SaWsJxFgeZayXpBJ5viDMJeF024RQw+Y5mTze8oxMnyNQgc8hnnNcVRbDRlVRgdUHG/S15trYG3MqdRAUvbfa4LySVYE1vW0ryQpWTqzK4cYiOtaZbtBw3Dh2hGydIBafjtEYy2eEwVLE6bPxbdNYF51rPTkpwQ70rZ0JXpNRiVo4TSb3n0wlITsqtOfYLS76VCdK11jQxNozdEUMamNkHI4E2EQIQWe61mJ7mjzI+wg8S9xQY1ZqQyBZAZ2TYb1YSTHflCvAnhewQF1RPlD35DqRBB9LLh8yMaZ++kD0oustGzY+22XjB+292LYOukQC24jMIy0faflTaPnrLi0/WgasKnsT4nxk4iMTfwoTX+xn4sK25pGHjzz8KTxcP/Rnz8BSE5e2G2aEXjJNpGqIjR6SKbShYRwY/PCunzzWQ7e57ilrneZVGG0W2tEcPan0aioTSX94KVmKhL0X2VCzZG76VMp6TuhIMh4f3lpXI6tUvf8yUbsAv+0Uwviv+HcjAS9TDXqYjVourdP/hNSm8Cbog1dB7PUMDqyD2Z9h9ccMrIEvNL+02TUxtE3hMCd/OJBamlt+V2O2Pcg0+m9a9SNYSZgHj7sR7UQXZI4udWGQW0e7XhugWxZOVjC3/MTDuw+jY/D9BbBLcsAlAd1ixht6zG2+SmAuLQTYBoEZZqJ0BrmtUZsBRKxhtnyWvBJcfn/xevYyiDbkjuaW4ZpWoD3MxObBm0+Tr5fj04/jj6dfL0+OL04mYoDH+eFsABPxIJAg+ObhBq/Jw43mMmj0WBPE4EGbsGW5JAe5dhT8GgTaarOwAbyeqYLP2DA5DC0ITqKR0flYJWpJzkecng6eD37bQU+88uSW5I4wJpgxaJHW0vs7Oh8P4LjSYcC1LZOHg9k2q3+ZHUJXToC7LHrZwR+zFHC7oXlp7XWvZ2552IF/KHgKnMEhKe5MGmXgTmM91xiaeseOghhiFcJ9Gf4Q4oZmTLcs9adNmFBdmIZjiV4JB0M/l3CkcrsvDolKtz4RbA2WpfUs9+7uJNLPrlqvZft7S07Kd5qoJTod2rQUc669POcqXWDlacfFzRtMHfRd8xCkc+1zvS8bIzWzxKqVlUrUNa22P2msp+ukrybxIR6Psowa3rq488aUZrNpZKcnE7Ve/wvNmitY
+api: eJztWE1v2zgQ/SsDXposVDvdFntQu1242TR1m7ZB4qKHwKjH0lhiI5EqOXLiDfzfF0NKjhsb2Muip5wsksP5ePNm5NGdsg05ZG3NOFepKojPK1yRu0DWpvAqUYyFV+mVivteTRPVoMOaWFbp1Z3yWUk1qvRO8aohlSrPTptCJarW5oxMwaVKn60T5ehHqx3lKmXXUqIM1iLeBM3jXCVKG1kjl2o9FXnfWOPJi+7fj47kJyefOd2IxypVkxIZ4v0nHrLWOTIMLjgPDTlorK1UojJrmAyLAmyaSmch5OF3L1r2RGDn3yljlajGCUCsow+uQ+VeEJ3DlTjOVPv/VhDc2QFqnai63do2bT0nJ9teFz/5dX+Say9xxzxtSWjDVESRtsmRKR/xvuOf0nGlOpzqVvVGH5rY1jdNFGuuRGF3un6osIdqR9SL7DpRL/blc2yWWOkcRBN5/v8yR85Ztxf5zOa0j7tk2loCMZZHGeslqUSeLwhzSTjdNiHUsHlOJo+3PCPTlwhU4HOI5xxXlcWwUVVUYPXRBn2tuTb2xpxKHQRF7602OK9kVWBNb9tKsoKVE6tyuLGIjnWmGzQcN44dIVsniMWnYzTG8hlhsBRx+mJ82zTWRedaT05KsAN9a2eC12RUohZOk8n9Z1NJyI4K7Tl2i4s+1YnSNRY0sfYMXRGD2hgZhyMBNhFC0JmutdieJg/yPgLPEjfUmJXaEEhWQOdkWC9WUsw35Qqw5wUsUFeUD9Q9uU4kwceSy4dMjKmfPhC96HrLho3Pdtn4UXsvtq2DLpHANiLzSMtHWv4SWj7fpeUny4BVZW9CnI9MfGTiL2Hii/1MXNjWPPLwkYe/hIfrh/7sGVhq4tJ2w4zQS6aJVA2x0UMyhTY0jAODH971k8d66DbXPWWt07wKo81CO5qjJ5VeTWUi6Q8vJUuRsPciG2qWzE2fSlnPCR1JxuPDW+tqZJWq918nahfgt51CGP8d/24k4GWqQQ+zUculdfqfkNoU3gR98CqIvZ7BgXUw+yus/pyBNfCV5pc2uyaGtikc5uQPB1JLc8vvasy2B5lGf6BVP4KVhHnwuBvRTnRB5umlLgxy62jXawN0y8LJCuaWn3h493F0DL6/AHZJDrgkoFvMeEOPuc1XCcylhQDbIDDDTJTOILc1ajOAiDXMls+SV4LLHy9ez14G0Ybc07lluKYVaA8zsXnw5vPk2+X49NP40+m3y5Pji5OJGOBxfjgbwEQ8CCQIvnm4wWvycKO5DBo91gQxeNAmbFkuyUGuHQW/BoG22ixsAK9nquAzNkwOQwuCk2hkdD5WiVqS8xGno8HzwdEOeuKVJ7ck9xRjghmDFmktvb+j8/EAjisdBlzbMnk4mG2z+rfZIXTlBLjLopcd/DFLAbcbmpfWXvd65paHHfiHgqfAGRyS4s6kUQbuNNZzjaGpd+woiCFWIdyX4U8hbmjGdMtSf9qECdWFaTiW6JVwMPRzCUcqt/vikKh06xPB1mBZWs9y7+5OIv3iqvVatn+05KR8p4laotOhTUsx59rLc67SBVaedlzcvMHUQd81D0E61z7X+7IxUjNLrFpZqURd02r7k8Z6uk76ahIf4vEoy6jhrYs7b0xpNptGdnoyUev1v8S8K1Q=
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-players.api.mdx b/docs/reference/http-api/get-players.api.mdx
index 6d08225..800336e 100644
--- a/docs/reference/http-api/get-players.api.mdx
+++ b/docs/reference/http-api/get-players.api.mdx
@@ -5,7 +5,7 @@ description: "getPlayers"
sidebar_label: "getPlayers"
hide_title: true
hide_table_of_contents: true
-api: eJztWE1z2zYQ/Ss7uNTu0LKTJj0oaTqK6zhKbMdjy5ODRxOtyBWFiAQYYCmb9ei/dxYQJdlSp5dOTj5JBJb78d7DkssHZStyyNqafqa6Kie+LLAh51WiGHOvureqXRkmqkKHJbFcdW8flE+nVKLqPihuKlJd5dlpk6tEldqckcl5qrovFoly9KPWjjLVZVdTogyWYq4ziaON6qofNblGLYZi6ytrPHnx+/LoSH4y8qnTleSpuuqyHhc6BZ2RYc0NTKyDugK28PoIUluWeOBJUmXKoPbkIAZKrWEyLA6xqgqdhsIPv3vxuqMaO/5OKatEVU5gYh1zqpZ4rA3ROWykEqbS/7cDnW1DtkiUZBqB2bGZaS9xL/5tH+fI6G5csd69XdNh6qJQw0WitO8Za5rS1pt5jq0tCI1aPKLqVhLdSOtxEpshH/sdJoo1F+I4Skctnjqu1pJ6bOrFdpGoV7t475s5FjoD8USe/z9GyTnrdsKa2mwH3okiU5dSiLHcS1nPBQ9j+YowEyHQfRVKDYuXZLJ4l2dkuqkyEWYQfqjnEpvCYlgoCsqxOLfBX21mxt6Z04i2sfzJaoPjQq5yLOmDkJooLJxElc1VRHSsU12h4bhw7AjZOkEs/jtGYyyfEYZIEacb4+uqsi4m19K+BH1jZYAzMipRE6fJZP6LKaRkR7n2HHvJVUt1onSJOQ2sPUOXx6JWQfphS4BNlJzVM11qiT1MnvDeA89SN5SYTrUhEFaWx3/SaJPD3bQBbHUBE9QFZR21FteJEHwsXD5VYqR++MT0atmDVmp8sa3Gc+29xLYOlkQC24jMsyyfZflTZPnbtiwvLAMWhb0LdT4r8VmJP0WJr3YrcWJr86zDZx3+FB0unubzaJwpiad2OeSIsFCGE3WIlT4kk2tDh9XK1lNaO81NmHIm2tEYvbxRD2VAaTevhYyoy7XJSoFT5qplLLxjEzoSYuOfD9aVyKqrPn0dqG0cPywdQv+v+FaRgCfDgB5GvZqn1um/A4NdeB/8wdtg9m4Ee9bB6M9w9ccIrIGvNL626YwY6ip3mJHf78iRGVv+WGK6OcdU+jM17Ug2JcxCxstp7UTnZA6udW6Qa0fbWRugexbpFTC2/IuHj+e9Y/DtDWDn5ICnBHSPKa9UMLZZk8BYOoXMcGIwwlScjiCzJWrTgYg1jOYvkreCy++v3o3eBNOK3MHYMsyoAe1hJDH33n8ZfLvun170L06/XZ8cX50MJAD3s/1RBwaSQWA85ObhDmfk4U7zNHj0WBLE4kGbsGR5Sg4y7Sjk1Qnq1GZiA3itIAWfvmFyGDoNnMQgvcu+StScnI84HXVedl5voSdZeXJzcgcYCWYMXqSDtPn2LvsdOC60SMHZmsnD3mhTwr+O9mF5agC3VfRmCX9kKeB2R+OptbPWz9jy4RL8fcFT4AwJyRlOpR8G7VTWc4mhdy/VkRPD+rA9qm2lL6Z7llOmTZh347AaD+KtiC/0a6lDzud6RJxaz2Lx8CDF3LhisZDl+MlATmimvbSdTHUnWHjaCr96+qi9tuPtg3SdXWnNqFl9mphjUYtF+DAxR6dDV5c+kLTHQ+LHW3ppShVv3LX1pBMvqzZ0ejJQi8U/W44ciA==
+api: eJztWE1z2zYQ/Ss7uNTu0LLdpD0oaTqKaztKHcdjy5ODRxOtyBWFiAQYYCmb9ei/dxYQJdlSp5dOTj5JBJb78d7DkstHZStyyNqafqa6Kie+KrAh51WiGHOvuneqXRkmqkKHJbFcde8elU+nVKLqPipuKlJd5dlpk6tEldpckMl5qrrHi0Q5+l5rR5nqsqspUQZLMdeZxNFGddX3mlyjFkOx9ZU1nrz4/eXoSH4y8qnTleSpuuqqHhc6BZ2RYc0NTKyDugK28OsRpLYs8cCTpMqUQe3JQQyUWsNkWBxiVRU6DYUffvPidUc1dvyNUlaJqpzAxDrmVC3xWBuic9hIJUyl/28HOtuGbJEoyTQCs2Mz017iXv7bPs6R0d26Yr17t6bD1EWhhotEad8z1jSlrTfzHFtbEBq1eELVnSS6kdbTJDZDPvU7TBRrLsRxlI5aPHdcrSX11NSL7SJRr3fx3jdzLHQG4ok8/3+MknPW7YQ1tdkOvBNFpi6lEGO5l7KeCx7G8jVhJkKghyqUGhavyGTxLs/IdFtlIswg/FDPFTaFxbBQFJRj8ckGf7WZGXtvziPaxvJHqw2OC7nKsaQzITVRWDiJKpuriOhYp7pCw3HhxBGydYJY/HeCxli+IAyRIk63xtdVZV1MrqV9CfrGygBnZFSiJk6TyfxnU0jJjnLtOfaS65bqROkScxpYe4Euj0WtgvTDlgCbKDmrF7rUEnuYPOO9B56lbigxnWpDIKwsj/+k0SaH+2kD2OoCJqgLyjpqLa5TIfhEuHyuxEj98Jnp9bIHrdR4vK3GT9p7iW0dLIkEthGZF1m+yPKHyPLVtiwvLQMWhb0Pdb4o8UWJP0SJr3crcWJr86LDFx3+EB0unufzZJwpiad2OeSIsFCGE3WIlT4kk2tDh9XK1lNaO81NmHIm2tEYvbxRD2VAaTdvhIyoy7XJSoFT5qplLLxjEzoSYuOfM+tKZNVVH78M1DaOZ0uH0P8zvlUk4MkwoIdRr+apdfrvwGAX3gd/8DaYvRvBnnUw+iNc/T4Ca+ALjW9sOiOGusodZuT3O3JkxpY/lJhuzjGV/ouadiSbEmYh4+W0dqpzMgc3OjfItaPtrA3QA4v0Chhb/snDh0+9E/DtDWDn5ICnBPSAKa9UMLZZk8BYOoXMcGIwwlScjiCzJWrTgYg1jObHyVvB5bfX70ZvgmlF7mBsGWbUgPYwkph77z8Pvt70zy/7l+dfb05Prk8HEoD72f6oAwPJIDAecvNwjzPycK95Gjx6LAli8aBNWLI8JQeZdhTy6gR1ajOxAbxWkIJP3zA5DJ0GTmOQ3lVfJWpOzkecjjqvOkdb6ElWntyc3AFGghmDF+kgbb69q34HTgotUnC2ZvKwN9qU8M+jfVieGsBtFb1Zwh9ZCrjd03hq7az1M7Z8uAR/X/AUOENCcoZT6YdBO5X1XGLo3Ut15MSwPmxPalvpi+mB5ZRpE+bdOKzGg3gn4gv9WuqQ87keEafWs1g8Pkoxt65YLGQ5fjKQE5ppL20nU90JFp62wq+ePmqv7Xj7IF1nV1ozalafJuZY1GIRPkzM0enQ1aUPJO3xkPjxll6aUsUbd2096cTLqg2dnw7UYvEPU2wchA==
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/get-profile.api.mdx b/docs/reference/http-api/get-profile.api.mdx
index e987d2d..ba9d63d 100644
--- a/docs/reference/http-api/get-profile.api.mdx
+++ b/docs/reference/http-api/get-profile.api.mdx
@@ -5,7 +5,7 @@ description: "getProfile"
sidebar_label: "getProfile"
hide_title: true
hide_table_of_contents: true
-api: eJztV01vGzcQ/SsDXhIXG9lJ0x6UNIXiOo7S2DFsGTkYQjTaHe0y4pIbclby1tj/XgxXkmXLhdFLTr7IMoecj/fejMgb5SryyNrZYab6Kic+826mDalEMeZB9a/UCalxojyFytlAQfVv1KuDA/mTUUi9ruS46qtRQZCiMeSfBXBLC9XGVeosk2U5g1VldBpD7n8PcvBGhbSgEqPVmC8z1b+6UdxUpPrKTb9TyipRlZdUWXcJ6Ew+V3sCe21z1SaqDuQtlvSgMdOhMtic/pcdF8joL725tV6tzYmytTFq3CZKh4F1tildHbbcTJ0zhFa1rUD1o9aeMjmvM7WV1t0ktkPe9TtOFGs24vjMYENetcljkFCJ+pHUU0/IlA14K3FtmXIJcC/xzt32mXG7ndaK27aVg68f0sPQLtDoDMQrBf4/MnikUu+df5DC1GUPcJsosnUpRVnHg5T1QrC3js8Js0bM11UsOy6ekc26U4GR6bLKpH4hqKvnDBvjMC4YQzmaExf91XZu3dIed8xax5+ctjiN+s+xpA/CQqLQeIkqxk1E9KxTXaHlbuFQMHd+jb7zh2it48+EMVKH06UNdVU53yW3ltgK9K2VEc7JqkTNvCabhS/WSMmech24a/3zNe2J0iXmNHLuM/q8K2oTZBhNAmyiPDJ91qWW2OPkHu8DCCx1Q4lpoS2BsAI6I8t61mibw7JoANe6gBlqQ1lP3YrrSAg+FC53VBmpH9/ber6aTRs1vtxV44kOQWI7DysigV2HzJMsn2T5U2T5664sTx0DGuOWsc4nJT4p8aco8fXDSpy52j7p8EmHP0WH7f187rw+SuLCrd4kIizkQvXVPlZ6n2yuLe1H+gKltdfcxDfDTHuaYpDbb7ysro0XwkMnydstG/EVzNWarHiVJ/QknHZfPjhfIqu++vR1pHYh/LByCMO/ugtFAoEsAwaYDGounNf/RPL68D76g7dx27sJPHceJn/G//6YgLPwlaYXLp0TQ13lHjMKez3plqnjjyWmWzljpf+mJmpdKiDMYsbd20cd6ZzsiwudW+Ta027WFuiaRXUGpo6fBfh4MjiEsD4AbkEeuCCga0x5I4Cpy5oEpjIkgF3cMMFUnE4gcyVq24MOa5gsXiZvBZffX7+bvIlbK/Ivpo5hTg3oABOJ+fz9l9G3i+Hx6fD0+NvF0eH50UgC8DDbm/RAXpQd2TG3AEucU4Cl5iJ6DFgSdMWDtnHJcUEeMu0p5tWLwtR25iJ4ay0KPkPL5DEOGTjqggzOhipRC/Khw+mg96r32w56klUgvyD/AjuCGaMXGR7rfAdnwx4cGi1S8K5mCvB8sq3eXyZ7sGoYwF0VvVnB37EUcVvStHBuvvYzdby/An9P8BQ4Y0LSvqmMwqidygUuMY7tlTpyYrjtszu1bfTFdM37lUFt47O6exN3PXgl4oujWuqInSp9XrjAYry5kTouvWlbWf5Rk5fmHCdqgV7HMSvdmaxFK307p0ZUmaZUSa8v0NSdyO/99EhPb+bC8dFIte2/+8TZjg==
+api: eJztV01v2zgQ/SsDXtosFCfdFntwu1242TR126RB4qCHwKjH0lhiTZEqObKjDfTfF0PZjhNnUeylp1wch0POx3tvxuStchV5ZO3sMFN9lROfezfThlSiGPOg+tfqlNQ4UZ5C5WygoPq36vfDQ/mTUUi9ruS46qtRQZCiMeSfBXBLC9XGVeosk2U5g1VldBpDHnwPcvBWhbSgEqPVmC8z1b++VdxUpPrKTb9TyipRlZdUWXcJ6Ew+V3sCe21z1SaqDuQtlvSoMdOhMtic/ZcdF8jor7y5s16vzYmytTFq3CZKh4F1tildHbbcTJ0zhFa1rUD1o9aeMjmvM7WV1v0ktkPe9ztOFGs24vjcYENetcnPIKES9U9STz0hUzbgrcS1ZcolwIPEO3fbZ8btdlorbttWDr56TA9Du0CjMxCvFPj/yOAnlXrv/KMUpi57hNtEka1LKco6HqSsF4K9dXxBmDVivqli2XHxnGzWnQqMTFdVJvULQV0959gYh3HBGMrRnLror7Zz65b2pGPWOv7otMVp1H+OJb0XFhKFxktUMW4iomed6gotdwtHgrnza/SdP0JrHX8mjJE6nK5sqKvK+S65tcRWoG+tjHBOViVq5jXZLHyxRkr2lOvAXetfrGlPlC4xp5Fzn9HnXVGbIMNoEmAT5ZHpsy61xB4nD3gfQGCpG0pMC20JhBXQGVnWs0bbHJZFA7jWBcxQG8p66k5cx0LwkXC5o8pI/fjB1ovVbNqo8cWuGk91CBLbeVgRCew6ZJ5k+STLXyLLl7uyPHMMaIxbxjqflPikxF+ixFePK3Hmavukwycd/hIdtg/zuff6KIkLt3qTiLCQC9VXB1jpA7K5tnQQ6QuU1l5zE98MM+1pikFuv/GyujZeCg+dJO+2bMRXMFdrsuJVntCTcNp9ee98iaz66uPXkdqF8P3KIQz/7i4UCQSyDBhgMqi5cF7/E8nrw7voD97EbW8n8Nx5mPwV//tzAs7CV5peunRODHWVe8wo7PWkW6aOP5SYbuWMlf5ETdS6VECYxYy7t4861jnZ/UudW+Ta027WFuiGRXUGpo6fBfhwOjiCsD4AbkEeuCCgG0x5I4Cpy5oEpjIkgF3cMMFUnE4gcyVq24MOa5gsXiRvBJc/Xr2dvI5bK/L7U8cwpwZ0gInEfP7uy+jb5fDkbHh28u3y+OjieCQBeJjtTXogL8qO7JhbgCXOKcBScxE9BiwJuuJB27jkuCAPmfYU8+pFYWo7cxG8tRYFn6Fl8hiHDBx3QQbnQ5WoBfnQ4XTYe9k73EFPsgrkF+T3sSOYMXqR4bHOd3A+7MGR0SIF72qmAM8n2+r9bbIHq4YB3FXR6xX8HUsRtyVNC+fmaz9Txwcr8PcET4EzJiTtm8oojNqpXOAS49heqSMnhrs+u1fbRl9MN3xQGdQ2Pqu7N3HXg9civjiqpY7YqdLnhQssxttbqePKm7aV5R81eWnOcaIW6HUcs9KdyVq00rdzakSVaUqV9PoCTd2J/MFPj/T0Zi6cHI9U2/4L9UrZig==
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/join-game-by-code.StatusCodes.json b/docs/reference/http-api/join-game-by-code.StatusCodes.json
index c4c4a2a..9273bb5 100644
--- a/docs/reference/http-api/join-game-by-code.StatusCodes.json
+++ b/docs/reference/http-api/join-game-by-code.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Seated: the game's id and the post-join roster","content":{"application/json":{"schema":{"type":"object","properties":{"gameId":{"type":"string"},"roster":{"type":"object","properties":{"type":{"type":"string","enum":["roster"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}}},"required":["type","status","players"],"title":"Roster"}},"required":["gameId","roster"],"title":"Joined"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Seated: the post-join session","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/join-game-by-code.api.mdx b/docs/reference/http-api/join-game-by-code.api.mdx
index 7df0e73..9def654 100644
--- a/docs/reference/http-api/join-game-by-code.api.mdx
+++ b/docs/reference/http-api/join-game-by-code.api.mdx
@@ -5,7 +5,7 @@ description: "joinGameByCode"
sidebar_label: "joinGameByCode"
hide_title: true
hide_table_of_contents: true
-api: eJztmd1z2kYQwP+Vm3tJ3BHYcdNOS9J0MHUcWif2GNI8eJiwSIt0sXSn3K3Aqof/vbN3AmMg8XSm4yf8YnQf+/nblVnfSVOiBVJG9xPZkV+M0mdQ4EndMwnKSBKkTnauJS86OYqkxa8VOjoxSS07d/5RWUxkh2yFkYyNJtTEW1CWuYq97MMvzmhec3GGBfjdPL+Yys71naS6RNmRZvIFY5KRLC3bRAodn4tzhZoG/t7faJ0KgppLShOmaOWCNRcF6ITdWG07skqnMpKF0ueoU8pk50UkC7hdPR3/slhEa25c79Q4iiQpylnmn0ZpuYges9tlxpIP4iPmbKq/vzhabKhtsrJYhDuuNNoFbcdHR/wrQRdbVZIPkhwgECYdQRmKFAp85oRKBOjEr5TGUYvzLaxxhFb+h+R933XWtSsNbHRQ9aiIsLsdONRVwUFq5IwWkXQEVLnvHZ6DorBiEZJaRhJiUjPGe6q0chkmvDYxljBZTzVDPwjiF5Esc6jRrmsCa4HFKcLCPe5UENDXCd7uRrhyaNcDd33vi67y3Ls7MfTYkceCl1UFaOlFydEmfutGrixaqm1kr4WIGZOLTSH+1Co196Fbu3gVMrh5s2FnRcpGBWDS0P9yF/B9PYNcJaLpUf8f0WitsTuBjr9R4ctYa0PdJWza0FUDIN6W3mO/eIk6Cbc4YPixTLhumavgzyXUuQG/kOeYQv7eeHmVvtFm7vt1EMQRgknOTxzHtwxEJCH32DfhCxrBkopVCZrCQs8ikPE9IHzqgdaGzhG8phCnj9pVZRmqJKChOVvByLWVIdwg8zW1CnXiLnRe+9pLlaPwrrlaZjySqoAUh8acg02DUyslfb8VULJAeK4K1VTow7x3hSP2WxQQZ0qj4KwIlaAmNa2VTsU8qwUsuRBTUDkmbXnP1iknuGmuD4EMqR9tHL1qmu+KxhfbNL5XzrFuY0WTSEEmRGaP5R7LJ8Hyx20sPxgSkOdm7v3ck7gn8UlIfLmbxKmp9J7DPYdPxuGvO74ncTJFbPQ0VzG9EhZdrWP/Rcki2XqP5x7PJ8Lz+Hgbz65zTJDRolCuAIqzPZB7IJ8CyMWmPVvjwQIpMzw45GkS0wU805KHUKpD1KnSeMgJc4d8szWpW3G45zCurKLaDwCnyuIEHE8z/MhruelHcIHT+yMrIjOicplBfp4gWD/FCh/eGlsA8djg01Bux/VtI1D0/wjfyiLhUJMAJ8bdijJj1T8+ox1x4uWJ1/7Ym7F4bqwY/+6ffhsLo8UnnAxMfIMkqjK1kKA7aMswqnlXQLw+MCrVX+gnRmxFhpB4i5ktToBKUbcGKtVAlcVtq7XAW2IUczEx9MyJd++7PeGWF4SZofWzPbyFmFZUTExSR2LCf2kJMv7AmCdgRo9FYgpQui1CrMV49iJ6zXH5+eWb8aswJ0TbmhgSN1gL5cSYdT4/uRh+HvTPPvQ/nH0enPauToesgPrJwbgthmyBT763zYk53KATc0WZl+igQBGcF0r7JUMZWpEoi96utqeVm9nV/bj59BaKMsdvDoWPHsyA7zvW2iR2rb8pPTU+M0v6Ofh9TWjDcFCcBg+6l30ZydlSiTxqH7d/2koNu+zQztC2INBD4KUw/ctgdC/7bdHzpgtrKkInno/XS+WH8YFoSlTANqKvmtwGBHxS5jjJjLlZypkYOmwye8DJ4lx5g7hhxNx8PZhcrDwC7Nwt0fNzYK5scVKLprYfeLhCmPCWDssc/BBcVjb3k01f9tfMt39FsDdNr+bx34PiH0Uy42bRuZZ3d+zfR5svFrz8tULLHWEUyRlY5Rs+t4RoWSncLG6wlh3ZC6+/VtNEZ5BXob42XoU8pw83unGMJX337Gitn11eDIZ+7Bn+zVEEfCzMfcuey46UkTQ+OL5B+bU7mYNOK0h9SL1M/vkXYOPelA==
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/join-game.StatusCodes.json b/docs/reference/http-api/join-game.StatusCodes.json
index c4c4a2a..9273bb5 100644
--- a/docs/reference/http-api/join-game.StatusCodes.json
+++ b/docs/reference/http-api/join-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Seated: the game's id and the post-join roster","content":{"application/json":{"schema":{"type":"object","properties":{"gameId":{"type":"string"},"roster":{"type":"object","properties":{"type":{"type":"string","enum":["roster"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}}},"required":["type","status","players"],"title":"Roster"}},"required":["gameId","roster"],"title":"Joined"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Seated: the post-join session","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/join-game.api.mdx b/docs/reference/http-api/join-game.api.mdx
index 0ff07ff..208287b 100644
--- a/docs/reference/http-api/join-game.api.mdx
+++ b/docs/reference/http-api/join-game.api.mdx
@@ -5,7 +5,7 @@ description: "joinGame"
sidebar_label: "joinGame"
hide_title: true
hide_table_of_contents: true
-api: eJztmU1z2zYQhv8KBpfaHVpy3LTTKmk6iuskap3EYznNwaOJVuSKREwCDLCUxGr03zsLkLIsufYl45N8sQgCi/14sBRfLaUp0QIpoweJ7MmvRum3UKCMJEHqZO9a8qWTo0iWYKFAQsvDS+niDAuQvaWkukTZk46s0qmMZKH0OeqUMtl7toqkxW+VspjIHtkKI6nZfk+mUOAgkZFUWvZkCZTJ1SjMRkevTVKz7e3FsdGEmvgWlGWuYu9796szmsd2nDKTrxiTjGRpOVJS6PhunCvUNPSz/0HrVFjeLFKaMEUrV7xfUYBOODkPBxrJAhbrq5NfV3civ753x1EkSVHONv8ySsvVKqxypdEuOHpyfMz/EnSxVSV5P+UQgTDpCcpQcBp/cEIlAnTiR0rj6IgLKaxxhFZ+t6w1JdvJBDsdtnrURLi7m0rUVcFpauyMVpF0BFS5hybPQVEYsQhJLSMJMakZ0ztVWrkMmS+YGEuYbGabmR4G86tIljnUnur1TmAtsDlFWLjHgwoGBjrBxf0UVQ7tZuKub2PRVZ77cCeGHpvyWPKyqgAtvSk52gZw08m1R+22je2NFDFjcrVtxM9al+Y2dRsLL0MFt1euj3tb4bvsY9LQ//w+4Ad6BrlKRNMcvh/RaK2x9wIdm+TBXGtD/RY2beiyARAXpY/YD16gTsIqThh+KhM+t77l+XguoM4N+IE8xxTy98bbq/SNNvO2EWtDnCGY5HzFeXzDQEQSco99k76wI1hSsSpBUxg4tQhkfA8In05Ba0PnCH6nkKdP2lVlGU5JQIN7dJP0jZEruEHma2oV6sR91Hntz16qHIWHyGVb8UiqAlK8MuYcbBqCWm8y8LcCShYIz1WhmhN6t+594YjjFgXEmdIouCpCJahJTWulUzHPagEtF2IKKsekI2/ZOuMCn3Itt4EMpR9tTb1smu+axme7NL5XzvHexoqmkIJMyMweyz2WT4LlT7tYfjAkIM/N3Me5J3FP4pOQ+Px+Eqem0nsO9xw+GYe/3fOexMUUsdHTXMX0Qlh0tY79i5JFsvUezz2eT4Tnyckunn3nmCCjRaFcARRneyD3QD4FkKttfzZ0vwIpM6wFso7EXLEy15NdKFUXdao0drlUrrsMr/SrLi/mlGNcWUW1VwenyuIEHAsZI5b12pteAAuI3k5Zw5gRlW3x+HqCYL2AFT68MbYAYsXg85XcTembxqAY/BleyCLhUJMAJ8b9ijJj1b++mD3x2tsTL/20V2NxYKwY/+Gvfh8Lo8VnnAxNfIMkqjK1kKA77Mig0rwrIN7Uikr1N9atjpkhJN7jRuU8Uynqo6FKNVBlcddrLXBBTGEuJoZ+cOLd+/6pcO0CYWZovayHC4hpDcTEJHUkJvwlS5DxE8Ysfhk9FokpQOmOCLkW49mz6CXn5Zfnr8YvgkSI9mhiSNxgLZQTY97z4PXHqy/DwdsPgw9vvwzPTi/PrngDGiSH4464Yg989b1vTszhBp2YK8q8RQcFihC8UNoPGcrQikRZ9H51PKjcxy5vJd6zBRRljv8ryR7fUWA3upjSU+OL0DLOeR5oQhskQHEWnO1fDGQkZ609edw56fy8UwWOzqGdoT2CAAqBt8KIt3H3LwYdceq9FNZUhE4cjDePxY/jQ9EcRAG7NL5oyhiq7fM/x0lmzE1rZ2Ko2xTxkOvCZfEOcVuIucV6BvlgstDXW7aUebW3Ob93IltTSrigbpkDq8yRrGzudUt/tK8ZYf8A4CiaTsziXm+t2fkTPopkxi2hdy2XS47sk81XKx7+VqHlYz+K5Ays8g2dm0CiHH9OZG8KucMd39bPOnnQ9tdD0WqR2z63x03zWZtBXvGVjOQN1re/JqxYJm3OIHsQbp6GfY6aztwu3nm+rqJ2RT+OsaQH5442WuXFx+GV11LDjxaFf8RKC3P/HJgHR42P27c+P7aUOei0gtRX0Nvkv/8AfAzrnQ==
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/leave-game.StatusCodes.json b/docs/reference/http-api/leave-game.StatusCodes.json
index e2aa6fc..7837e00 100644
--- a/docs/reference/http-api/leave-game.StatusCodes.json
+++ b/docs/reference/http-api/leave-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Left: the post-leave roster","content":{"application/json":{"schema":{"type":"object","properties":{"roster":{"type":"object","properties":{"type":{"type":"string","enum":["roster"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}}},"required":["type","status","players"],"title":"Roster"}},"required":["roster"],"title":"LobbyAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Left: the post-leave session","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/leave-game.api.mdx b/docs/reference/http-api/leave-game.api.mdx
index 35c0b86..5576c97 100644
--- a/docs/reference/http-api/leave-game.api.mdx
+++ b/docs/reference/http-api/leave-game.api.mdx
@@ -5,7 +5,7 @@ description: "leaveGame"
sidebar_label: "leaveGame"
hide_title: true
hide_table_of_contents: true
-api: eJztmd9v2zYQx/8Vgi9LBsVus27Y1K6D66Wtu7QN4hR9CIz6LJ0lLhKpkic7nqH/fThSchy7SF+KPLkvtSjyeD8+d3a/XUtToQVSRo9SGcsCYYFvoEQZSYLMyfha8qOTk0hWYKFEQsvLa+mSHEuQ8VrSqkIZS0dW6UxGslT6HHVGuYyfNpG0+LVWFlMZk60xkprtxzKDEkepjKTSMpYVUC6bSdiNjl6ZdMW2dw8nRhNq4ldQVYVKvPP9f53RvLbnlJn9iwnJSFaWQyWFjt8mpixBpxz0w/5HsoTbzdPp700TSVJU8IFzM5uthsGSbJrGx+oqo1245PTJE/4rRZdYVbGffAjnFAvKUVTG0YnPuLDGEVr5w8Jr7X13X3i7nwHUdcm1b+1Mmkg6AqrdQ5uXoCisWIR0JSMJCakFszRXWrkcudowM5YwZaC6PDJh42C+iWRVwMoztrkJrAU2pwhL9/2ggoGRTvF2a7PShBlavqF2aLcrf30Xi66Lwoc7M/S9Ld9LXl6XoKU3JSfNvUa4vufkxqPu2tb2VorGCCSbXSN+16Y0d6nbOngZKrh7sivsDsyDJMGKqxNofvYtgEd6AYVKRduoPw5atNbY/YQ2fEH6YKa1oUGHmjZ02eKHt5WP1y9eoE7DKU4XfqpSIAzjx8dzAavCgF8oCsygeG+8vVrfaLPU7VDUht4ZpWFW8BOPsNeMQySh8NDzy82NYEklqgJNYWFoEcj4Ng+fhqC1oXMeAeyXz9Mn7eqqCj0SwOB52SZ9a+UKbpDpmluFOnUfdbHynZcpR2GiX3b1jqQqIcMrY87BZiGozSUj/yqAZIHwXJWq7c/7dR8IRxy3KCHJlUbBVREqRU1qvlI6E8t8JaDjQsxBFZj25B1iZ1zgIddyF8dQ+snO1st2mG5ofLpP43vlHN9trGgLKciEzBywPGD5KFj+so/lB0MCisIsfZwHEg8kPgqJz75N4tzU+sDhgcNH4/CPfQ75Bz67oueFSui5sOhWOhGg+Zck2dUBzwOej4Tn6ek+ngPnmCCjRalcCZTkByAPQD4GkM2uP9siXImUG1bmWCxisFgmi2UfKtVHnSmNfa6V66+DnNb0iy7pmNRW0cprdXNlcQaOhYwJi2zdyzFXJkB6t2WDY05UdeXj5xmC9SpV+PDa2BJIxvLd5yu5n9TXrUEx+jv8kywSDjUJcGI6qCk3Vv3nyxmLV96eeOG3vZyKI2PF9C//9OdUGC0+42xskhskUVeZhRTdcU8GleZtCcm2VlSpf3DVqYo5Quo9bjXHM5WhPhmrTAPVFve91gJviTksxMzQT068fT8YCtcdEGaB1ot3eAsJbZCYmXQViRn/zBJk/IYpi19GT0VqSlC6J0KuxXTxNHrBefnt2cvp8yAEoj2ZGRI3uBLKiSnfefTq49WX8ejNh9GHN1/GZ8PLsyu+gEbp8bQnrtgDX37vmxNLuEEnlopyb9FBiSIEL5T2S4ZytCJVFr1fPY8qT7LLO8H17BbKqsAdgXRrXik9Nz7ZHc2cz5EmtEHqE2fBqcHFSEZygdaFvD7pnfZ+3cs2R+HQLtCeQACCwFthlrv4BhejnhgWitGxpiZ04mi6zf/P02PRtpyAfeqet+UKVfV5XuIsN+amszMz1G+Ldcz55/R7h3gAJDxMPWvcgSzoxeuOpqDdtp16L7QNjoS31K8KUNoLj7bwAqVv4mtm1c96DqMduqzixRtlPPTyJJI5d398Lddrju2TLZqGl7/WaLnBJ5FcgFV+eHO7p8rx51TGcygc7jm3+V6TR90sPRad6rjrdNdYmrtqAUXNTzKSN7i6U/EbFkTbbmMPwsthuOekncLd4b3v0ibqTgQB8sG9k62pePFxfOVV0/CfBaX/OpUWln7mL4OjxscddHFeW8sCdFZDxnuDTf7zPyb0vRg=
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/list-friend-requests.api.mdx b/docs/reference/http-api/list-friend-requests.api.mdx
index 099bfde..ef8568a 100644
--- a/docs/reference/http-api/list-friend-requests.api.mdx
+++ b/docs/reference/http-api/list-friend-requests.api.mdx
@@ -5,7 +5,7 @@ description: "listFriendRequests"
sidebar_label: "listFriendRequests"
hide_title: true
hide_table_of_contents: true
-api: eJztV01z20YM/Ss7e6nd2UhJmvSgpOkoru0ojR2PLU8OHk0EkTC1EblgdkHZqkf/vYNdUZJlZ3rp5OSTyP0AHh4eIOJOU40e2JIb5LqnSxv4yFt0+Tl+bzBw0EYzFEH3rvQFZRZKPTLaY6jJBQy6d6dfPn8uPzmGzNtaTOmePkOXW1covzJjlHUZVbIELlfUcEHWFdrojByjYzEBdV3aLKLpfgti506HbIoVyBMvatQ9TZNvmLE2uvaCnW1C0TraOgnew0IbbRmr8N8WmoDeQYVbJwN7Abk0OrehLmFx+qN9mAODv/TlZveq3TbaNWWpR0ujbeg7couKmm1AE6ISwYkdASGZeMRFsC7bdm4dY4E+ofOYJeZ3LxqNrqkETZsAbfSa/tFyaSJ11mMuh9Yk3A95O8D7UawhtwC30YyMZsulwLmnKr3c9btO34+uBLmzNPrVY2obuDmUNm/V9v+pCr0n/2g2MsofUcKGbUfcz9jOhRBHfI6Qixbxto4hx8VVkQh1DIyXdQ4c92yK5wwWJUFcKEssoDyhaK9xM0c37jhlxhF/JOtgUspbARUeidyMhtKLV9lcewTPNrM1OE4LBx6ByQtj6ekAnCP+hBA9JZ4uXWjqmnwC10pkRfrWyhBm6LTR1zFx4bMrJWSPhQ2cmsx5m3KjbQUFDok+gS9SUGsng7glxBrtgfGTraz4HpmdvPdVYIlbVZBNrUMlWVE2R8f2eiHN5ma6UNDqQl2DLTHv6I3GDiXBB5LLXUWm1I92jp6vOt9ajS8eqvHEhiC+yatVIhVTYuZJlk+y/Cmy/O2hLE+JFZQl3cQ4n5T4pMSfosRXjyvxmhr3pMMnHf4UHS538Tw651TIU5IpqMAoMOCp7uku1LaLrrAOuyu+un5zKWDWeMsL3bu609fW4wSCfPyPlqPN5oVkJwl1c2QtySlz3aYwjgMIHiXT6eGIfAWse/rjl6F+SOzRyqAa/JU+M4wK6FhBUON+w1Py9p+Y0p56H+2pt/HYu7HaI6/Gf8a3P8aKnPqCkwvKZsiqqQsPOYb9jtTQhPhDBdn2bFXbvzEOV4JiipBHxGl+0oe2QPfswhYOuPH4ELVTeMuixVJNiH8J6sNJ/0CF9oKiOXrFU1R4CxmvZTGhfGHURFqHYooHxhBHjbHKqQLrOipxrcbzF+at8PL7q3fjN/Fojf7ZhFjNcKFsUGPxuff+8/DrxeD4dHB6/PXi8OD8cCgOeJDvjztqKAhi6iO2oG5ghkHdWJ5GiwEqVCl4ZV1cIp6iV+sRqBPlat01RfJahQo/A8foIbYedZic9M8G2ug5+pB4et552Xn9gD1BFdDP0T+DlGCGaEVaSou3fzboqIPSihQ8NYxB7Y23tfzreF+tykjBQxW9WdGfshR5u8HJlGjW2pkQd1fk7wufQmcEJEWdSYOM2qkpcAWxma/UIcWnUvWprfK7F+RaaIy33K1LsGk8TgN2Ks0rUWHs5BLQpp1pc2+cnFJgOXx3JwFe+nK5lOXvDXqp2pHRc/A2dmUpW9OqWQp6hguRa5ZhLS1hDmWT1L/zTyXFvm4fx4dDvVz+C61aFKM=
+api: eJztV01vG0cM/SuDuTQuJpLTGD0oaQrFtR2liWPYMnIwhIjapVcT7Q43M1zZqqH/XnBGK8myg14Kn3zS7nyQj4+P1PJOU40e2JIb5LqnSxv42Ft0+Tn+aDBw0EYzFEH3rvQFZRZKPTLaY6jJBQy6d6d/29+XnxxD5m0tpnRPn6HLrSuUX5kxyrqMKlkClytquCDrCm10Ro7RsZiAui5tFtF0vwexc6dDNsUK5IkXNeqepsl3zFgbXXvBzjahaB1tnQTvYaGNtoxV+G8LTUDvoMKtk4G9gFwandtQl7A4/dk+zIHBX/pys3vVbhvtmrLUo6XRNvQduUVFzTagCVGJ4MSOgJBMPOIiWJdtO7eOsUCf0HnMEvO7F41G11SCpk2ANnpN/2i5NJE66zGXQ2sS7oe8HeD9KNaQW4DbaEZGs+VS4NxTlV7u+l2n72dXgtxZGn3wmNoGbg6lzVu1/X+qQu/JP5qNjPJHlLBh2xH3M7ZzIcQRnyPkokW8rWPIcXFVJEIdA+NlnQPHPZviOYNFSRAXyhILKD9TtNe4maMbd5Iy44g/knUwKeWtgAqPRW5GQ+nFq2yuPYJnm9kaHKeFQ4/A5IWx9HQIzhF/QoieEk+XLjR1TT6BayWyIn1rZQgzdNro65i48MWVErLHwgZOTea8TbnRtoICh0SfwBcpqLWTQdwSYo32wPjJVlZ8j8xO3vsqsMStKsim1qGSrCibo2N7vZBmczNdKGh1oa7Blph39EZjR5LgQ8nlriJT6kc7R89XnW+txlcP1fjZhiC+yatVIhVTYuZZls+yfBJZvn4oy1NiBWVJNzHOZyU+K/FJlHjwuBKvqXHPOnzW4ZPocLmL59E5p0KekkxBBUaBAU91T3ehtl10hXXYXfHV9ZtLAbPGW17o3tWdvrYeJxDk43+0HG02LyQ7SaibI2tJTpnrNoVxHEDwKJlOD8fkK2Dd0x+/DvVDYo9XBtXgr/SZYVRAxwqCGvcbnpK3/8SU9tT7aE+9jcfejdUL8mr8Z3z7Y6zIqa84uaBshqyauvCQY9jrSA1NiD9UkG3PVrX9G+NwJSimCHlEnOYnfWQLdC8vbOGAG48PUTuFtyxaLNWE+JegPnzuH6rQXlA0R694igpvIeO1LCaUL4yaSOtQTPHAGOKoMVY5VWBdRyWu1Xj+yrwVXn4/eDd+E4/W6F9OiNUMF8oGNRafL95/GX67GJycDk5Pvl0cHZ4fDcUBD/K9cUcNBUFMfcQW1A3MMKgby9NoMUCFKgWvrItLxFP0aj0CdaJcrbumSF6rUOFn4Bg9xNajjpKT/tlAGz1HHxJP+53Xnf0H7AmqgH6O/iWkBDNEK9JSWrz9s0FHHZZWpOCpYQzqxXhby7+O99SqjBQ8VNGbFf0pS5G3G5xMiWatnQlxd0X+nvApdEZAUtSZNMionZoCVxCb+UodUnwqVZ/aKr97Qa6FxnjL3boEm8bjNGCn0rwSFcZOLgFt2pk298bJKQWWw3d3EuClL5dLWf7RoJeqHRk9B29jV5ayNa2apaBnuBC5ZhnW0hLmUDZJ/Tv/VFLs6/ZxcjTUy+W/pnwUnw==
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/list-friends.api.mdx b/docs/reference/http-api/list-friends.api.mdx
index 92f7da4..8c3bdb5 100644
--- a/docs/reference/http-api/list-friends.api.mdx
+++ b/docs/reference/http-api/list-friends.api.mdx
@@ -5,7 +5,7 @@ description: "listFriends"
sidebar_label: "listFriends"
hide_title: true
hide_table_of_contents: true
-api: eJztWE1vGzcQ/SsDXhIXGzlJkx6UNIXi2o7SxDFsGTkYQjTaHe8y4pIbcla2aui/F0NqJdly0UuRk0+WyNn5eO/NaMe3yjXkkbWzw0L1ldGBj7wmWwSVKcYyqP6lOne5RqPGmfIUGmcDBdW/VS+fP5c/BYXc60Z8qL4aVQQ5GkP+SQDMc2qYCrha+8ydZbIsD2LTGJ3H4Pvfgzx9q0JeUY3yiRcNqb5y0++Us8pU4yVV1il253BjiN7jQmVKM9Xhvx20gbzFmrYsA3ttS7XMVKFDY3Bx8m/3OEdGf+HN5vayu86UbY1R42WmdBhYZxe1a7cTmjpnCK34kSQE9wdCBG3z7eDaMpXk1XIpLPxotadCoq7ruJv1do53E1lH7WKMM8WajQRJ1Kvl/SAd2jumQWyXmXr1kBSGdo5GFyCeKPD/Rz557/yDqOWueICxTJFtaynEOh7krOcCkHV8RliIZuimiaXGw1OyRXoqMDJdNAVyvNOpnlNcGIfxwBgq0Xx20V9rZ9Zd2+MEv3X80WmLUyPfSqzpSGSRKTReosrlOiJ61rlu0HI6OPCE7Lwglj4doLWOPxHGSAmnCxvapnE+JdfpYAX61skIZ2RV1pH4xRop2VOpA6fWP+uozpSusaSRc5/Ql6modZBhvBJgM+WR6ZOutcQeZ/d4H0BgqRtqzCttCYQV0AVZ1lcLbUu4rhaAnS7gCrWhoqc24joUgg+Ey/tKTNSP75mercbSWo0vdtX4WYcgsZ2HFZHALiHzKMtHWf4UWf66K8sTx4DGuOtY56MSH5X4U5T46mElXrnWPurwUYc/RYfL+/nc3T5q4srJUlJSVBZypfpqHxu9T7bUlvY3W0WgvPWaF6p/eauutKcpBnkpHy/Hm8tzYWO1PqxN1hKsmJuOsviaTuhJmE0fjpyvkVVfffw6UrtAHq0cwvDP9FqRQSDLgAEmg5Yr5/XfkcI+vI/+4G00ezeBp87D5I/47fcJOAtfaXru8hkxtE3psaCw15OemTr+UGO+vfM0+i+KS49kUREWMeO016hDXZJ9dq5Li9x62s3aAt2waM/A1PGTAB8+Dw4gdA+Am5MHrgjoBnNey2DqikUGUxkVwC4aTDAXpxMoXI3a9iBhDZP5i+yt4PLbq3eTN9G0If9s6hhmtAAdYCIxn77/Mvp2Pjw+GZ4cfzs/PDg7HEkAHhZ7kx7ISpkYj7kFuMYZBbjWXEWPAWuCVDxoG48cV+Sh0J5iXr0oT22vXASvU6TgM7RMHuOogcMUZHA6VJmakw8Jp+e9l73XO+hJVoH8nPwzTAQzRi8yQrp8B6fDHhwYLVLwrmUK8HSyLeFfJnuwahvAXRW9WcGfWIq4XdO0cm7W+Zk63l+Bvyd4CpwxIWniXAZi1E7jAtcYh/dKHdJssOm2O8WtBcZ0w/uNQZ3W1bTwpk68FPXFiS2FbMaW9HzlAovF7a1Uc+HNcinHP1ry0qLjTM3R6zhypUezTrrSvTNaiDbjfw6EBjRtkvq9nyHp7PWIOD4cqeXyH3UY38Y=
+api: eJztWE1vGzcQ/SsDXhIXG9lpgh6UNIXi2o7SxDFsGTkYQjTaHe8y4pIbcla2aui/F0NqJdly0UuRk0+WyNn5eO/NaMd3yjXkkbWzw0L1ldGBj70mWwSVKcYyqP6VunC5RqPGmfIUGmcDBdW/U78eHMifgkLudSM+VF+NKoIcjSH/LADmOTVMBVyvfebOMlmWB7FpjM5j8P3vQZ6+UyGvqEb5xIuGVF+56XfKWWWq8ZIq6xS7c7gxRO9xoTKlmerw3w7aQN5iTVuWgb22pVpmqtChMbg4/bd7nCOjv/Rmc3vVXWfKtsao8TJTOgyss4vatdsJTZ0zhFb8SBKC+yMhgrb5dnBtmUryarkUFn602lMhUdd13M96O8f7iayjdjHGmWLNRoIk6tXyYZAO7R3TILbLTL1+TApDO0ejCxBPFPj/I5+8d/5R1HJXPMJYpsi2tRRiHQ9y1nMByDo+JyxEM3TbxFLj4RnZIj0VGJkumwI53ulUzxkujMN4YAyVaD676K+1M+tu7EmC3zr+6LTFqZFvJdZ0LLLIFBovUeVyHRE961w3aDkdHHpCdl4QS58O0VrHnwhjpITTpQ1t0zifkut0sAJ962SEM7Iq60j8Yo2U7KnUgVPrn3dUZ0rXWNLIuU/oy1TUOsgwXgmwmfLI9EnXWmKPswe8DyCw1A015pW2BMIK6IIs6+uFtiXcVAvAThdwjdpQ0VMbcR0JwYfC5UMlJurHD0zPV2NprcaXu2r8rEOQ2M7Dikhgl5B5kuWTLH+KLF/tyvLUMaAx7ibW+aTEJyX+FCW+flyJ1661Tzp80uFP0eHyYT73t4+auHKylJQUlYVcqb7ax0bvky21pf3NVhEob73mhepf3alr7WmKQV7Kx8vx5vJC2FitD2uTtQQr5qajLL6mE3oSZtOHY+drZNVXH7+O1C6QxyuHMPwzvVZkEMgyYIDJoOXKef13pLAP76M/eBvN3k3gufMw+SN++30CzsJXml64fEYMbVN6LCjs9aRnpo4/1Jhv7zyN/ovi0iNZVIRFzDjtNepIl2RfXOjSIreedrO2QLcs2jMwdfwswIfPg0MI3QPg5uSBKwK6xZzXMpi6YpHBVEYFsIsGE8zF6QQKV6O2PUhYw2T+MnsruPz2+t3kTTRtyL+YOoYZLUAHmEjM5++/jL5dDE9Oh6cn3y6ODs+PRhKAh8XepAeyUibGY24BbnBGAW40V9FjwJogFQ/axiPHFXkotKeYVy/KU9trF8HrFCn4DC2Txzhq4CgFGZwNVabm5EPC6aD3qnewg55kFcjPyb/ARDBj9CIjpMt3cDbswaHRIgXvWqYAzyfbEv5lsgertgHcVdGbFfyJpYjbDU0r52adn6nj/RX4e4KnwBkTkibOZSBG7TQucI1xeK/UIc0Gm267V9xaYEy3vN8Y1GldTQtv6sQrUV+c2FLIZmxJz1cusFjc3Uk1l94sl3L8oyUvLTrO1By9jiNXejTrpCvdO6OFaDP+50BoQNMmqT/4GZLOXo+Ik6ORWi7/AW6G38I=
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/register-device.api.mdx b/docs/reference/http-api/register-device.api.mdx
index 2561bb0..57be35c 100644
--- a/docs/reference/http-api/register-device.api.mdx
+++ b/docs/reference/http-api/register-device.api.mdx
@@ -5,7 +5,7 @@ description: "registerDevice"
sidebar_label: "registerDevice"
hide_title: true
hide_table_of_contents: true
-api: eJztVt9z0zgQ/lc0+wK9cZPCFB4Mx00IBcK10Enb4aGTIWt7a4vKkpHWSXOd/O83Kztprrnh6e6NvMSSVvvj2293dQ+uIY+snZ0UkIKnUgcm/44WOidIgLEMkF7DGcEsAU8/Wgr81hUrSO/jUnsqIGXfUgK5s0yW5Qibxug8Kh5+D87KXsgrqlG+eNUQpOCy75QzJNB4cYM1BTm90cWOUGCvbQkJ1Nqeki25gvRZAjXebVbPX7xcJ9AY5Bvn63+7SratJQrtAiSAtvBOF5DAkjKYrdfJTiTX0fyOulkCrNmIvg6VacSoAw3W6+56aJwNnfvPj47lr6CQe91EqRSmPbBUpIorUjkaQ/5JUE0bKgpqqY1RnjCvFFc6KG0DozGwTuD46Ghf38Qu0OhC9RmB/wx88t75fQzXYqCgn4FrHY9y1guhjXU8JSxWcnzXRGTj5jnZorsVGJmumgI5nukunnNcGYdxwxgq0Zy5qK+1t9Yt7Qese+2fnLaYGVmVWNP71hjJrPFiVQ63FtGzznWDlruNsSdk5wWx7muM1jo+JYyWOpyubGibxvnOuTaQt1hTD/rOziXekoUEbrwmW4Qv1kjIfoch0w2zEtA1lnTp3Cn6sgtqa2QSjwTYBDwynepai+1Z8ijvIxVY4lY15pW2pCQrShdkWd+stC3Vslop3PBC3aA2VAzggcQnkuCx5PIx8bvUzx6JTntu91Q/Pnq2z8YzHYLYdl71iVTsOmR+0fIXLf93Wq4f+7M3x2riysmEa9pILpTBAUNs9JBsqS0NaxoWUVpGRKC89ZpXkF7LPPKUYSBIr2fr2cPhheRkM7I2IlsiVszNJnGyzgg9SX67j/fO18iQwqevl7AP5/teoZq860opUYEsKwxqPmq5cl7/FROZqrdRn3odxd7M1VPn1fyPuPp9rpxVXym7cPktsWqb0mNB4WAglZM5/lhjvuMzNvpPWkXeSwSERfRYKCW465Ls4YUuLXLrad9rq+iOhYFGZY6fBPXxbDRWYXNBuQX5OP3oDnPekiFzxSpRmWuttI0oMMdclM5V4WrUdqA6rNV88Sx5Lbi8PH4zfxVFG/KHmWN1Syulg5qLzadvv1x+u5h8+Dz5/OHbxcl4enIpBnhSHMwH6lI8iEmPvgW1xNs4grmKGgPWpLrglbZxy3FFXhXaU/RrEEkqPWz68CI6ucO6MbR9wTy0ooenSXyBrAXfGxdx31BaoJ1YJo+xV6mTzr/R+QQSWJAPHcRHg+eDF3vAS0CB/IL8IXbcYIxapAdtQh2dTwZqbLSwyLuWKain890C+G1+oPq6U7hPwFd95roER8iXlFXO3W70ZI6Hfd4OJBWSieiQdIFcOmqkXeMC1xi7f0+sTbWqbbn+I74tPZnueNgY1Fb0tN7IWVfK18Ld2PUllljwUU1X0LMEKhdYxO7vJaorb9Zr2f7RkpcqnyWwQK9j75YyTzbslwZwSytIYdxNssO+Hy7QtF3NPJpq62RzY5Tn1PBPZWc7ren8SjpB1j+u6zjXwOMyNt8lpAAJuIhJ7Dlx7x4M2rLFUmQ7lfL7G5GCHck=
+api: eJztVk1z2zYQ/SuYvSTu0JKTujkwaTqK4iRK7cQj25ODRxMtyTWJGAQYYClZ9ei/dxakZNXq5NTeoosIYLEfb9/u4h5cQx5ZOzspIAVPpQ5M/i0tdE6QAGMZIL2GM4JZAp6+txT4jStWkN7HpfZUQMq+pQRyZ5ksyxE2jdF5VDz8FpyVvZBXVKN88aohSMFl3yhnSKDx4gZrCnJ6o4sdocBe2xISqLU9JVtyBemzBGq826ye//ZinUBjkG+cr//tKtm2lii0C5AA2sI7XUACS8pgtl4nO5FcR/M76mYJsGYj+jpUphGjDjRYr7vroXE2dO4/PzqWv4JC7nUTpVKY9sBSkSquSOVoDPknQTVtqCiopTZGecK8UlzpoLQNjMbAOoHjo6N9fRO7QKML1WcE/jPwyXvn9zFci4GCfgSudTzKWS+ENtbxlLBYyfFdE5GNm+dki+5WYGS6agrkeKa7eM5xZRzGDWOoRHPmor7W3lq3tO+x7rV/dNpiZmRVYk3vWmMks8aLVTncWkTPOtcNWu42xp6QnRfEuq8xWuv4lDBa6nC6sqFtGuc759pA3mJNPeg7O5d4SxYSuPGabBE+WyMh+x2GTDfMSkDXWNKlc6foyy6orZFJPBJgE/DIdKprLbZnyaO8j1RgiVvVmFfakpKsKF2QZX2z0rZUy2qlcMMLdYPaUDGABxKfSILHksvHxO9SP3skOu253VP9+OjZPhvPdAhi23nVJ1Kx65D5ScuftPzfabl+7M/eHKuJKycTrmkjuVAGBwyx0UOypbY0rGlYRGkZEYHy1mteQXot88hThoEgvZ6tZw+HF5KTzcjaiGyJWDE3m8TJOiP0JPntPt45XyNDCh+/XMI+nO96hWrytiulRAWyrDCo+ajlynn9V0xkqt5EfepVFHs9V0+dV/M/4ur3uXJWfaHswuW3xKptSo8FhYOBVE7m+EON+Y7P2Og/aRV5LxEQFtFjoZTgrkuyhxe6tMitp32vraI7FgYalTl+EtSHs9FYhc0F5Rbk4/SjO8x5S4bMFatEZa610jaiwBxzUTpXhatR24HqsFbzxbPkleDy4vj1/GUUbcgfZo7VLa2UDmouNp+++Xz59WLy/tPk0/uvFyfj6cmlGOBJcTAfqEvxICY9+hbUEm/jCOYqagxYk+qCV9rGLccVeVVoT9GvQSSp9LDpw4vo5A7rxtD2BfPQih6eJvEFshZ8b1zEfUNpgXZimTzGXqVOOv9G5xNIYEE+dBAfDX4dHO0BLwEF8gvyh9hxgzFqkR60CXV0PhmosdHCIu9apqCezncL4Jf5gerrTuE+AV/2mesSHCFfUlY5d7vRkzke9nk7kFRIJqJD0gVy6aiRdo0LXGPs/j2xNtWqtuX6j/i29GS642FjUFvR03ojZ10pXwt3Y9eXWGLBRzVdQc8SqFxgEbu/l6iuvFmvZft7S16qfJbAAr2OvVvKPNmwXxrALa0ghXE3yQ77frhA03Y182iqrZPNjVGeU8M/lJ3ttKbzK+kEWf+4ruNcA4/L2HyXkAIk4CImsefEvXswaMsWS5HtVMrvb4j0HcU=
sidebar_class_name: "put api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/remove-friend.api.mdx b/docs/reference/http-api/remove-friend.api.mdx
index c7b1917..ed189b8 100644
--- a/docs/reference/http-api/remove-friend.api.mdx
+++ b/docs/reference/http-api/remove-friend.api.mdx
@@ -5,7 +5,7 @@ description: "removeFriend"
sidebar_label: "removeFriend"
hide_title: true
hide_table_of_contents: true
-api: eJztV01z00gQ/StdfdlkS7EDy+5BsGyZ4IDZAKnEKQ4pF25LbWuINCNmWna8Kf33rR7ZJsQ5c8rJ0kxPf7z3uj26Q1ezJzHOjnJM0XPllnzqDdscExRaBEyv8dJlhkqcJFiTp4qFva7fYcgKrgjTO5R1zZhiEG/sAhOsjD1ju5AC02dtgp6/N8Zzjqn4hhO0VKl5E9iPNJKxmGJNUmA7UetQOxs4qOfnxy/0J+eQeVNrqpjilZ3HJDmHPqhzDgIrI0XuaWWhDzlnpbGcw4HJuaqdsJVDbBN8cXy8725kl1SafOsJE8yc1SNqSnVdmiyC1P8W1P6Rwt3sG2d6sPYKqZguefbe+X18Wg2Q82PAsW0qxdw6GWRiloyJPl8w5Wvdvq0jjnHxnG3enQpCwld1TsIdnLGec1qXjuJCWfKCyo8u+mvsjXUr+05JiI4+OGNpVurbgio+bcoSE6TSa1Td3EUkLyYzNVnpFk48kziviHVPJ2StkzOmGKnD6cqGpq6d75JT0pX/Dej3VsZ0wxYT7LgNn22pJXtemCCdSi+2OkrQVLTgsXNn5BddUbsgo7ilwCboSfjMVEZjT5IHvA8giNYNFWWFsQzKCpicrZj52tgFrIo10E5hczIl5z1tDSOl8jZUgk+Uy/YnmV9vqJ88ML3YSBvbto1qfLavxo8mBI3tPGyIBHEdMk+yfJLlL5HlH/uy/OQEqCzdKtb5pMQnJf4SJT7y769KnLvGPunwSYe/RIftw3weXJQrlsLpBTrnkkWriXfZFPtUmz7bhbHc34DVv+tuva2izlnjjazjZXpuPM8oMKbXE70FbzcvlZpOpT9MdnosROotf/o+Y/KsNHcPp85XJJjihy9j3Ef1dOMQRm+7O0YCga0ABZgOGimcN/9FPlN4E/3Bq2j2egoHzsP0n/j29xSchS88u3TZDQs09cJTzuGwpw00c/K+ouxezlSbf3m9vfYXTHnMePNRMDQLtkeXZmFJGs/7WVvgW1EhljBz8luA9x8HJxC2B8At2YMUDHxLmew0MXP5OoGZzg0QFw2mlKnTKeSuImN70GEN0+Wz5JXi8teL19OX0bRmfzRzAje8BhNgqjEP3nwef70cvfs0+vTu6+Xw5GI41gAyyg+nPRhrBpH6mFuAFd1wiF8p0WOgiqErHoyNS04K9pAbzzGvXtSqsXMXwdvKU/EZWWFPce7AsAsyOB9hgkv2ocPpuPe89+ceeppVYL9kf0QdwULRi86Tbb6D81EPTkqjUvCuEQ5wML2v5d+nh7DpIaB9Fb3cwN+xFHFb8axw7mbrZ+akvwH/UPFUOGNC2tGZTseondoFqShO8o06us6DXev9VN1OYcK30q9LMla9NL7Uva4nr1V+cX5rJT+GGCaYbr5HJwkWLoja3t1pYVe+bFtd/t6w126dJLgkb+Io1t7NTdDnHNM5lYH30tr9S+HBdjIegk6nx9LddonVFllS2egbJnjD6x/fzO2kTbatoxl0m4Ms41ruHdv7T9TJshtXb4dnw/EQ2/Z/BkyZIg==
+api: eJztV01z00gQ/StdfdlkS9hhofYgWLZMcFizAVKJUxxSLtyW2tZgaUbMtOx4U/rvWz2yTYhz5pSTpZme/njvdXt0h65mT2KcHeWYoufKrfjMG7Y5Jii0CJje4JXLDJU4SbAmTxULe12/w5AVXBGmdyibmjHFIN7YBSZYGXvOdiEFps/bBD1/b4znHFPxDSdoqVLzJrAfaSRjMcWapMB2otahdjZwUM9/nLzUn5xD5k2tqWKK13Yek+Qc+qDOOQisjRS5p7WFPuSclcZyDkcm56p2wlaOsU3w5cnJobuRXVFp8p0nTDBzVo+oKdV1abIIUv9bUPtHCnezb5zpwdorpGK65Nl75w/xaTVAzo8Bx7apFHPrZJCJWTEm+nzJlG90+7aOOMbFC7Z5dyoICV/XOQl3cMZ6LmhTOooLZckLKj+66K+xS+vW9r2SEB19cMbSrNS3BVV81pQlJkil16i6uY9IXkxmarLSLZx6JnFeEeueTslaJ+dMMVKH07UNTV073yWnpCv/W9DvrYxpyRYT7LgNn22pJXtemCCdSi93OkrQVLTgsXPn5BddUfsgo7ilwCboSfjcVEZjT5IHvA8giNYNFWWFsQzKCpicrZj5xtgFrIsN0F5hczIl5z1tDSOl8jZUgk+Vy/Ynmd9sqZ88ML3cShvbto1qfH6oxo8mBI3tPGyJBHEdMk+yfJLlL5Hli0NZfnICVJZuHet8UuKTEn+JEh/591clzl1jn3T4pMNfosP2YT4PLsoVS+H0Ap1zyaLVxLtsin2qTZ/twljub8Hq33W33lZR56zxRjbxMj03nmcUGNObid6Cd5tXSk2n0h8mez0WIvWOP32fMXlWmruHM+crEkzxw5cxHqJ6tnUIo3fdHSOBwFaAAkwHjRTOm/8inym8jf7gdTR7M4Uj52H6d3z7awrOwheeXblsyQJNvfCUczjuaQPNnPxTUXYvZ6rNv7zZXfsLpjxmvP0oGJoF22dXZmFJGs+HWVvgW1EhljBz8luAfz4OTiHsDoBbsQcpGPiWMtlrYubyTQIznRsgLhpMKVOnU8hdRcb2oMMapqvnyWvF5c+Xb6avomnN/tnMCSx5AybAVGMevf08/no1ev9p9On916vh6eVwrAFklB9PezDWDCL1MbcAa1pyiF8p0WOgiqErHoyNS04K9pAbzzGvXtSqsXMXwdvJU/EZWWFPce7AsAsyuBhhgiv2ocPppPeid3KAnmYV2K/YP6OOYKHoRefJLt/BxagHp6VRKXjXCAc4mt7X8u/TY9j2ENChil5t4e9YiriteVY4t9z5mTnpb8E/VjwVzpiQdnSm0zFqp3ZBKoqTfKuOrvNg33o/VbdXmPCt9OuSjFUvjS91r+vJG5VfnN9ayY8hhgmm2+/RSYKFC6K2d3da2LUv21aXvzfstVsnCa7ImziKtXdzE/Q5x3ROZeCDtPb/Uni0m4zHoNPpsXR3XWK1RVZUNvqGCS558+ObuZ20ya51NINuc5BlXMu9Ywf/iTpZ9uPq3fB8OB5i2/4P/Z+ZHg==
sidebar_class_name: "delete api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/search-users.api.mdx b/docs/reference/http-api/search-users.api.mdx
index 35e3030..1557935 100644
--- a/docs/reference/http-api/search-users.api.mdx
+++ b/docs/reference/http-api/search-users.api.mdx
@@ -5,7 +5,7 @@ description: "searchUsers"
sidebar_label: "searchUsers"
hide_title: true
hide_table_of_contents: true
-api: eJztWEtz2zYQ/isYXGp3GMlOkx6UNB3FdVyljuOx5MnBo4lW5IpEBAIMsJTNevTfOwuIeljq9NLJySdRwGIf33675OJR2godkLJmkMme9AguLW49Oi8TSZB72buTQ5sq0HKcyAoclEi83bt7lD4tsATZe5TUVMjnySmTy0SWylyiyamQvdNlIh1+r5XDTPbI1ZhIAyWLf5eJVIYfanSNXCYHVCpDmKOLOlVZl7J3msgSHuLz65NEZjiDWpPsvTzZsTUD7TfGtCoVPTE4ZnFfWePRs82XJyf8k6FPnaoYFtmTn4DSQplcOMyVJ3SYiZohSsQUPYmS98VMOc/qU2sIDbEaqCqt0oBu95tnXQfis9NvmPLBynEuSEVPgoEtMXAOGvaesPT/fVxl+1lZJkFrhOPAZqZ8paG5+rd9WACBu3V6s3u3ybiptZbjZSKV7xtrmtLW235OrdUIRi53MnTHjm65tevEtsldveNEkiLNiq81NOjk8qniCOCWILN6GPjNwstEvjqU7IFZgFaZYFX4fyYUnbPuIK6pzQ4Ankg0TPA7aSz1U1ILBsRYukHImAn4UIVYw+I1miye8gSEt1UGFPZUjOcaGm0hLGiNOehPNuirzdzYe3MR4TaWPlplYKr5Xw4lfuCsJhK0Y6u8ubYIjlSqKjAUF84cAlku1DQ+nYExli4RgqWI063xdVVZF51r874CfWtlBHM0MpEzp9Bk/rPRHHIswNivbtpcJ1KVkOPI2ktweQxqbWQQthjYRDogvOQmgBnzYjfvfeGJ4xYlcLGj4KwIlaEhNWu4+u+LRkDLCzEDpTHryA2/zjnBZ5zLp1SMqR8/Eb1ZNZ41G08PtB7lPdu2TqwSKchGZJ5p+UzLH0LLX/ZpeWVJgNb2PsT5zMRnJv4QJr46zMSZrc0zD595+EN4uHzqz+7IVCIVliepHAOzgCcg2YVKddHkymA3fJd24ylGG9PaKWrCPDVTDqfg+cN6zLNJuznklER2bkTWPCyIqjZv4VMbwYWBKT58sK4Ekj358ctI7qP5YaVQDP6I3xaJ8GhIgBeTfk2FdervkMeeeB/0ibdB7N1EHFknJr+Hf79NhDXiC06HNp0jibrKHWTojztcOFNLf5aQbo8zlfoLm3YaKxCy4PFqVDtXOZoXQ5UboNrhvtdG4AMxAbWYWvrJiz8/9c+Ebw8Iu0AnqECBD5DSmgtTmzWJmHK/EGSDwARSVjoRmS1BmY6IWIvJ4jR5y7j8+urd5E0QrdC9mFoSc2yE8mLCNo/efx59HQ4urgZXF1+H52c35yM2QIPseNIRI/YgpD345sU9zNGLe0VF0OihRBGDF8qEJUsFOpEph8GvTuCoMjMbwGtpyfgMDKGD0G/EeTTSvx7IRC7Q+YjTSedl5/UeeuyVR7dA9wJiggmCFu4jrb/960FHnGnFVHC2JvTiaLLN458nx2JVOwL2WfRmBX/MUsDtHqeFtfNWz9RSdwX+MePJcAaHuJJT7oqBO5X1VELo4Ct2xNoRbcntBLcmGOEDdSsNyoS5Nw6tsRzvmH2hbXMgq17mQy2GohwnsrCeWPDxkYO6dXq55OV4a8CVminPTWhzyfDEi/W7SB61/e9YcA865N0cm9VlyAJ0zfvhKmTPRpRr7zE2smP+41R4G3DnSNqCYk/joX6aYrV9au8NyVrW3evifCSXy38AiC9PZw==
+api: eJztWEtz2zYQ/isYXGp3GMlO0h6UNB3FdVyljuOx5MnBo4lW5IpEBAIMsJTNevTfOwuIeljq9NLJySdRwGIf33675OJR2godkLJmkMme9AguLW49Oi8TSZB72buTQ5sq0HKcyAoclEi83bt7lD4tsATZe5TUVMjnySmTy0SWylyiyamQvdNlIh1+r5XDTPbI1ZhIAyWLf5eJVIYfanSNXCYHVCpDmKOLOlVZl7J3msgSHuLzLyeJzHAGtSbZe3myY2sG2m+MaVUqemJwzOK+ssajZ5svT074J0OfOlUxLLInPwGlhTK5cJgrT+gwEzVDlIgpehIl74uZcp7Vp9YQGmI1UFVapQHd7jfPug7EZ6ffMOWDleNckIqeBANbYuAcNOw9Yen/+7jK9rOyTILWCMeBzUz5SkNz9W/7sAACd+v0Zvduk3FTay3Hy0Qq3zfWNKWtt/2cWqsRjFzuZOiOHd1ya9eJbZO7eseJJEWaFV9raNDJ5VPFEcAtQWb1MPCbhZeJfH0o2QOzAK0ywarw/0woOmfdQVxTmx0APJFomOB30ljqp6QWDIixdIOQMRPwoQqxhsVrNFk85QkIb6sMKOypGM81NNpCWNAac9CfbNBXm7mx9+Yiwm0sfbTKwFTzvxxK/MBZTSRox1Z5c20RHKlUVWAoLpw5BLJcqGl8OgNjLF0iBEsRp1vj66qyLjrX5n0F+tbKCOZoZCJnTqHJ/GejOeRYgLFf3bS5TqQqIceRtZfg8hjU2sggbDGwiXRAeMlNADPmxW7e+8ITxy1K4GJHwVkRKkNDatZw9d8XjYCWF2IGSmPWkRt+nXOCzziXT6kYUz9+InqzajxrNp4eaD3Ke7ZtnVglUpCNyDzT8pmWP4SWr/ZpeWVJgNb2PsT5zMRnJv4QJr4+zMSZrc0zD595+EN4uHzqz+7IVCIVliepHAOzgCcg2YVKddHkymA3fJd24ylGG9PaKWrCPDVTDqfg+cN6zLNJuznklER2bkTWPCyIqjZv4VMbwYWBKT58sK4Ekj358ctI7qP5YaVQDP6I3xaJ8GhIgBeTfk2FdervkMeeeB/0ibdB7N1EHFknJr+Hf79NhDXiC06HNp0jibrKHWTojztcOFNLf5aQbo8zlfoLm3YaKxCy4PFqVDtXOZoXQ5UboNrhvtdG4AMxAbWYWvrJiz8/9c+Ebw8Iu0AnqECBD5DSmgtTmzWJmHK/EGSDwARSVjoRmS1BmY6IWIvJ4jR5y7j8+vrd5E0QrdC9mFoSc2yE8mLCNo/efx59HQ4urgZXF1+H52c35yM2QIPseNIRI/YgpD345sU9zNGLe0VF0OihRBGDF8qEJUsFOpEph8GvTuCoMjMbwGtpyfgMDKGD0G/EeTTSvx7IRC7Q+YjTSedV52QPPfbKo1ugewExwQRBC/eR1t/+9aAjzrRiKjhbE3pxNNnm8c+TY7GqHQH7LHqzgj9mKeB2j9PC2nmrZ2qpuwL/mPFkOINDXMkpd8XAncp6KiF08BU7Yu2ItuR2glsTjPCBupUGZcLcG4fWWI53zL7QtjmQVS/zoRZDUY4TWVhPLPj4yEHdOr1c8nK8NeBKzZTnJrS5ZHjixfpdJI/a/ncsuAcd8m6OzeoyZAG65v1wFbJnI8q19xgb2TH/cSq8DbhzJG1BsafxUD9Nsdo+tfeGZC3r7nVxPpLL5T9/RU9j
sidebar_class_name: "get api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/send-friend-request.api.mdx b/docs/reference/http-api/send-friend-request.api.mdx
index d90105e..d0cb829 100644
--- a/docs/reference/http-api/send-friend-request.api.mdx
+++ b/docs/reference/http-api/send-friend-request.api.mdx
@@ -5,7 +5,7 @@ description: "sendFriendRequest"
sidebar_label: "sendFriendRequest"
hide_title: true
hide_table_of_contents: true
-api: eJztWE1v20YQ/SuDvTQuaClJ0x6YNIWi2qlSJzEkGTkYQjQkx9RG5C6zO5SsGvrvxexSsmMZOQU52Rdzv2bmvXkz5OpG2YYcsrZmVKhUeTLFqdNkijF9bcmzShRj6VV6qSY211ipWaJcXHtji41Kb8JQOypUyq6lROXWMBmWJWyaSufBfv+Lt0bmfL6gGuWJNw2pVNnsC+XiqXESDWvyYRVdSXzhyUlo+92enTalSlStzRmZkhcqfbbdJnfCuPz27CxRrLmSwxHbNKyq7TYe8401Pvp8/vSp/CvI5043ErZKVUcFeDKcgHWALdtjzHNqmAr1wwB7Rm79Q1DJtLXA6ogPTvf+Z/fBd3YOYHc4xuTbaof+xUOAR2aFlS7A7TXwgxCSc9YdAtyKg4K+h9xYHuSsV6QSeR4TFhtZvm4C6jB5TqaIp4QBumgKjFTpiOccN5XFMFFVVGL13gZ7rVkauzZvse6sv7PaYFbJqMSaTtuqEsIrJ15lce8RHetcN2g4TgwdIVsnjMWnIRpj+YwweIo8XRjfNo11MbjWkzNYU0f6nZkpLsmoRF2F7PmPphLIjkrtOdbseJf1ROkaS5paeybaDqD2TkZhSYhNlEOmM13rIJzkXt4H4FlwQ435QhsCyQroggzrq402JawXG8CdLuAKdUVFT90K7UQSPJRc3hdlTP3s3tZxV3x7NT47VON77b34tg66RALbyMyjLB9l+VNk+duhLD9YBqwqu/6Rr4BHJT4q8ftKfPGwEq9sax51+KjDn6LD7f14Hro21MQLK3eKxoZxg/KlrvrY6D6ZUhvqd3z1uzC9EE956zRvVHp5o660oww9qfRytp3dLk4kO1Got1v2klwwN7sUyjgjdCSZjg+n1tXIKlXvPk3VIbGnnUEY/R0/M5Lw3Q/oYT5oeWGd/i+kNIU3wR68Cttez+GJdTD/K4z+nIM18Imyic2XxNA2pcOC/FFPaiiz/E+N+Z2YsdH/0iZUgCAgLELEIi7JgC7JHE90aZBbR4dRG6BrFi1WkFn+xcM/7wdD8LsDYFfkgBcEdI0572WR2WKTQCatA9iGDXPMxegcClujNj2IXMN89Sx5Jbz88eL1/GXY2pA7zizDkjagPczF55M3H6efJ6O3H0Yf3n6enAzHJ1NxwKPiaN6DqUQQUh9i87DGJXlYa14Eix5rgggetAlTlhfkoNCOQly9IFfpZuPbO+jJNdZNRYd3xjttS5srGzbsRC2UjgyTw9Ct4CTGNTgfqUStyPlI7dPe897vB4QLEE9uRe4YoyYYgxXpQjuIg/NRD4aVFvU42zJ5eDK/K/9f50fQVR7gofBedhmLiQ1UrylbWLvc2cks97t8HUkKJAMhIOkDufTUIDcpwBpD/+8EJfUKsWDhtmK/wbiXJtM195sKtRFbratkLRbzpeg29H7Bc9sA1f4ngnALXUgDSC/VzY3gu3DVdivTX1tyUuezRK3Q6dDHpdCTnf6lBSxpo1I1jG+14643rrBqY9Xce8Ntk92JQbgdf3fv7E6POv84kWaQdb9o1OElpxyuQydeq1SpRNlATWg7Ye5GVWjKFkvZG23K3/8GwBLG
+api: eJztWE1v20gM/SvEXLZZKHa6LfagdrtwvUnrbtIEtoMeAqOmJUaeWppRZyg73sD/fcEZ2UnjIKeip+QSzRfJ9/hIaXyrbE0OWVszyFWqPJn8xGky+ZC+N+RZJYqx8Cq9UiObaSzVJFEurr23+Vqlt2GoHeUqZddQojJrmAzLEtZ1qbNgv/vNWyNzPptThfLE65pUquzsG2XiqXYSDWvyYRVdQXzpyUlou92enTaFSlSlzSmZgucqfbnZJPfCuPrx7CRRrLmUwxHbOKyqzSYe87U1Pvr84+hI/uXkM6drCVulqqUCPBlOwDrAhu0hZhnVTLn6aYA9Izf+MahkmkpgtcQHpzv/k4fgWzt7sFscQ/JNuUX/+jHAA7PEUufgdhr4SQjJOev2AW7EQU5PITeWexnrJalEnoeE+VqWb+qAOkxekMnjKWGALuscI1U64rnAdWkxTJQlFVie2WCvMQtjV+YDVq31T1YbnJUyKrCik6YshfDSiVdZ3HlExzrTNRqOE31HyNYJY/Gpj8ZYPiUMniJPl8Y3dW1dDK7x5AxW1JJ+b2aMCzIqUdche/7clALZUaE9x5odbrOeKF1hQWNrT0XbAdTOySAsCbGJcsh0qisdhJM8yHsPPAtuqDCba0MgWQGdk2F9vdamgNV8DbjVBVyjLinvqDuhHUuC+5LLh6KMqZ882Dpsi2+nxpf7ajzT3otv66BNJLCNzDzL8lmWv0SWr/Zl+dkyYFna1c98BTwr8VmJTyvx9eNKvLaNedbhsw5/iQ43D+N57NpQEc+t3ClqG8Y1ype66mKtu2QKbajb8tVtw/RCPGWN07xW6dWtutaOZuhJpVeTzeRucSTZiUK927KT5Jy53qZQxjNCR5Lp+HBiXYWsUvXpy1jtE3vSGoTBP/EzIwnf/YAepr2G59bp/0JKU3gf7MHbsO3dFF5YB9O/w+ivKVgDX2g2stmCGJq6cJiTP+hIDc0sf6wwuxcz1vpfWocKEASEeYhYxCUZ0AWZw5EuDHLjaD9qA3TDosUSZpZ/8/DxrNcHvz0AdkkOeE5AN5jxThYzm68TmEnrALZhwxQzMTqF3FaoTQci1zBdvkzeCi9/vn43fRO21uQOZ5ZhQWvQHqbi88X78/HX0eDD58HnD19Hx/3h8Vgc8CA/mHZgLBGE1IfYPKxwQR5WmufBoseKIIIHbcKU5Tk5yLWjEFcnyFW62fDuDnp8g1Vd0v6d8V7b0ubahg1bUQulA8PkMHQrOI5x9S4GKlFLcj5Se9R51TnaI1yAeHJLcocYNcEYrEgX2kLsXQw60C+1qMfZhsnDi+l9+f8+PYC28gD3hfemzVhMbKB6RbO5tYutnZnlbpuvA0mBZCAEJH0gk54a5CYFWGHo/62gpF4hFizcVewPGHfSZLrhbl2iNmKrcaWsxWK+Et2G3i947hqg2v1EEG6hc2kA6ZW6vRV8l67cbGT6e0NO6nySqCU6Hfq4FHqy1b+0gAWtVar68a122PbGJZZNrJoHb7hNsj3RC7fjJ/dO7vWoi/ORNINZ+4tGFV5yyuEqdOKVSpVKlA3UhLYT5m5ViaZosJC90ab8/Q/99xLC
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/sidebar.ts b/docs/reference/http-api/sidebar.ts
index 1540c59..b2ef819 100644
--- a/docs/reference/http-api/sidebar.ts
+++ b/docs/reference/http-api/sidebar.ts
@@ -32,6 +32,12 @@ const sidebar: SidebarsConfig = {
label: "getGame",
className: "api-method get",
},
+ {
+ type: "doc",
+ id: "reference/http-api/get-game-session",
+ label: "getGameSession",
+ className: "api-method get",
+ },
{
type: "doc",
id: "reference/http-api/create-game",
diff --git a/docs/reference/http-api/start-game.StatusCodes.json b/docs/reference/http-api/start-game.StatusCodes.json
index 5ce2da7..2c3b4c1 100644
--- a/docs/reference/http-api/start-game.StatusCodes.json
+++ b/docs/reference/http-api/start-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Started: version 0 committed","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer"},"frame":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}},"required":["version","frame"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Started: the session at version 0","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/start-game.api.mdx b/docs/reference/http-api/start-game.api.mdx
index 0110c9c..143539d 100644
--- a/docs/reference/http-api/start-game.api.mdx
+++ b/docs/reference/http-api/start-game.api.mdx
@@ -5,7 +5,7 @@ description: "startGame"
sidebar_label: "startGame"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/submit-action.StatusCodes.json b/docs/reference/http-api/submit-action.StatusCodes.json
index c704f28..df8da83 100644
--- a/docs/reference/http-api/submit-action.StatusCodes.json
+++ b/docs/reference/http-api/submit-action.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Committed: the acting seat's frame","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer"},"frame":{"type":["object","null"],"properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"}},"required":["version","frame"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"Committed: the acting seat's session","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"type":"object","properties":{"type":{"type":"string","enum":["session"]},"seq":{"type":"integer"},"gameId":{"type":"string"},"shortCode":{"type":"string"},"access":{"type":"string","enum":["public","private","friends"],"title":"GameAccess"},"schemaVersion":{"type":"integer"},"config":{"type":"object"},"turnSeconds":{"type":["integer","null"]},"budgetSeconds":{"type":["integer","null"]},"incrementSeconds":{"type":["integer","null"]},"rated":{"type":"boolean"},"ratingPool":{"type":["string","null"]},"minPlayers":{"type":"integer"},"maxPlayers":{"type":"integer"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"players":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"userId":{"type":["string","null"]},"botId":{"type":["string","null"]},"type":{"type":"string","enum":["human","bot"]}},"required":["playerIndex","userId","botId","type"],"title":"Seat"}},"version":{"type":["integer","null"]},"frame":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["frame"]},"version":{"type":"integer"},"data":{"type":"object"},"pendingPlayers":{"type":"array","items":{"type":"integer"}},"deadline":{"type":["integer","null"]},"playerTimes":{"type":["array","null"],"items":{"type":"integer"}},"outcomes":{"type":"array","items":{"type":"object","properties":{"playerIndex":{"type":"integer"},"result":{"type":"string","enum":["win","loss","draw","eliminated"]},"placement":{"type":"integer"},"teamIndex":{"type":"integer"},"score":{"type":["number","null"]}},"required":["playerIndex","result","placement","teamIndex"],"title":"Outcome"}},"ratings":{"type":"array","items":{"type":"object","properties":{"identity":{"type":"object","properties":{"userId":{"type":["string","null"]},"botId":{"type":["string","null"]}},"required":["userId","botId"],"title":"RatingIdentity"},"pool":{"type":"string"},"muBefore":{"type":"number"},"sigmaBefore":{"type":"number"},"displayBefore":{"type":"integer"},"muAfter":{"type":"number"},"sigmaAfter":{"type":"number"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"}},"required":["identity","pool","muBefore","sigmaBefore","displayBefore","muAfter","sigmaAfter","displayAfter","displayChange"],"title":"RatingDelta"}}},"required":["type","version","data","pendingPlayers","deadline","playerTimes"],"title":"Frame"},{"type":"null"}]}},"required":["type","seq","gameId","shortCode","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","createdBy","status","players","version","frame"],"title":"Session"}},"required":["session"],"title":"CommandAccepted"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Missing or invalid token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"403":{"description":"Not allowed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"State conflict; resync and retry","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"422":{"description":"Assertion mismatch","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["notActive","notReady","expired","notPending","stateUpdated","invalidPayload","illegalMove","unknownGame","notJoinable","gameFull","alreadyJoined","notParticipant","notCreator","creatorCannotLeave","schemaUnsupported","usernameInvalid","usernameTaken","friendsOnly","registrationRequired","imageTooLarge","unsupportedImageType","rateLimited"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}}}}
\ No newline at end of file
diff --git a/docs/reference/http-api/submit-action.api.mdx b/docs/reference/http-api/submit-action.api.mdx
index 109af13..1142baa 100644
--- a/docs/reference/http-api/submit-action.api.mdx
+++ b/docs/reference/http-api/submit-action.api.mdx
@@ -5,7 +5,7 @@ description: "submitAction"
sidebar_label: "submitAction"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/unblock-user.api.mdx b/docs/reference/http-api/unblock-user.api.mdx
index 2247212..df6f066 100644
--- a/docs/reference/http-api/unblock-user.api.mdx
+++ b/docs/reference/http-api/unblock-user.api.mdx
@@ -5,7 +5,7 @@ description: "unblockUser"
sidebar_label: "unblockUser"
hide_title: true
hide_table_of_contents: true
-api: eJztV01z2zgM/SscXDbZUeyk292D2u2Omzqtu2mbSZzpIeOpIQmWWEukSkJOvBn99x1QlvPhnHPKyRIJAg8PDxB9C7Ymh6ytmWQQQ2OS0qbLS08OImDMPcRXcGFTjSXMIqjRYUVMTtZvwacFVQjxLfC6JojBs9MmhwgqbU7J5FxAfNRG4OhXox1lELNrKAKDlZg3ntwkgwi0gRhq5ALamVj72hpPXjy/OnwtPxn51OlakEIMlx1OytSezqiqLZPhfWgjeH14uGs+MSssdaYEBnmGCFJr5IiYYl2XOg0cDH96sX8iMZv8pFQO1k4YY92BI+es282/lQAZPUUMmaYSTo3lUcp6RRDJ8zlhtpbtmzrwFBbPyGTdKc/IdFlnyNTRFfI5w3VpMSyUJeVYfrHBX2OWxl6bj0JycPTZaoNJKW85VnTSlCVEgKWTqLK5jYiOdaprNNwtHDtCtiKGtHs6RmMsnxKGSB1Pl8Y3dW1dB06KKvXdkH5vZYpLMhDBwmkymf9mSknZUa49dyI873USga4wp6m1p+jyLqltkEnYEmIjcMh0qistsWfRo7qPlGfJW1WYFtqQkqoonZFhvVhrk6vrYq2w14VaoC4pG4j0NZdSt7EU+Fhq2T6Q8dWm9LNHpucb6ULbtkGNR7tq/KK9l9jWqU0hFduOmRdZvsjyWWT5x64sv1pWWJb2OuT5osQXJT6LEp/4uosSF7YxLzp80eGz6LB9jOfhPbgiLqxcjzMqiSWZcFWNYYi1HpLJtaHhhqvhbXepbYfBg1BPaeM0r8ONeaEdJegJ4quZXHX7zQupTyfVO5OtKAvmui+ivCeELiDrHk6sq5Ahhs/fp7BL7cnGoZp86C4akfJkWKFX81HDhXX6v1DUWL0P/tTbYPZurvasU/N/wtvfc2WN+k7JhVy8WTV17jAjvz+QLkosf6owvYcZa/0vrfu7fUGYBcSbm/9Y52QOLnRukBtHu6iNohsWNZYqsfybV5++jI6V7w8ouyKnuCBFN5jyVhiJzdaRSmR4KLbBYI6pOJ2rzFaozUB1XKv56ih6K7z89frd/E0wrckdJJbVktZKezWXmHvvv01/XEw+fp18/fjjYnx8Pp5KAJ5k+/OBmgqCIICAzatrXJJX15qL4NFjRapLXmkTliwX5FSmHQVcgyBYbRY2kNdrVPiZGCaHYfiocRdkdDaBCFbkfMfT4eDV4M8d9gSVJ7cid4BdgRmDFxkqPd7R2WSgjkstUnC2YfJqb35f0b/P99WmkRTuqujNhv6uSoG3a0oKa5e9n8TycEP+vvApdAZA0tapjMigndp6rjCM8/5/Ydd+atN/D5LbCozphod1idqIk8aVstc15pWoL8xwSeRukEEE8fY/Z9efswgK61nO3N5KfpeubFtZ/tWQk6adRbBCp8NYlhbOtJfnDOIFlp524G2/WLDXT8l9JZPqKdh9sxjplBWWjbxBBEta3/0/bmdt1HeQIOg2R2lKNd87tvN9lAGznV0fxqfj6Rja9n9TkZFI
+api: eJztV8Fy2zgM/RUOLpvsqHa67exB7XbHTd2uu2mbSZzpIeOpIQmWWEukSkJOvBn9+w5Iy03rnHvKyRIJAg8PDxB9B7Ylh6ytmRWQQmey2ubrK08OEmAsPaTXcGlzjTUsEmjRYUNMTtbvwOcVNQjpHfC2JUjBs9OmhAQabc7IlFxB+rRPwNG3TjsqIGXXUQIGGzHvPLlZAQloAym0yBX0C7H2rTWevHj+4+S5/BTkc6dbQQopXEWcVKgjXVDTWibDx9An8Pzk5NB8ZjZY60IJDPIMCeTWyBExxbatdR44GH/1Yv9AYjb7SrkcbJ0wxjqCI+esO8y/lwAFPUQMma4RTo3lSc56Q5DI8wVhsZXt2zbwFBbPyRTxlGdkumoLZIp0hXzOcVtbDAt1TSXWH2zw15m1sTfmnZAcHL232mBWy1uJDb3t6hoSwNpJVNncR0THOtctGo4Lp46QrYghj0+naIzlM8IQKfJ0ZXzXttZFcFJUqe+O9Hsrc1yTgQRWTpMp/CdTS8qOSu05ivBi0EkCusGS5taeoStjUvsgs7AlxCbgkOlMN1piL5Kf6j5RniVv1WBeaUNKqqJ0QYb1aqtNqW6qrcJBF2qFuqZiJNLXXEvdplLgU6ll/4OMr3elX/xkerGTLvR9H9T49FCNH7T3Ets6tSukYhuZeZTloyx/iSyfHcryo2WFdW1vQp6PSnxU4i9R4gNfd1HiynbmUYePOvwlOux/xvPjPbghrqxcjwuqiSWZcFVNYYytHpMptaHxjqvxXbzU9uPgQainvHOat+HGvNKOMvQE6fVCrrrD5qXUJ0r1u8lelBVzOxRR3jNCF5DFh7fWNciQwvvPczik9u3OoZq9iReNRHkyrNCr5aTjyjr9Xyhqql4Hf+plMHu1VEfWqeXf4e2vpbJGfabsUi7erLq2dFiQPx5JF2WW/2kwv4cZW/0vbYe7fUVYBMS7m/9Ul2SeXOrSIHeODlEbRbcsaqxVZvk3r/75MDlVfjig7Iac4ooU3WLOe2FkttgmKpPhodgGgyXm4nSpCtugNiMVuVbLzdPkpfDy5/NXyxfBtCX3JLOs1rRV2qulxDx6/Wn+5XL27uPs47svl9PTi+lcAvCsOF6O1FwQBAEEbF7d4Jq8utFcBY8eG1IxeaVNWLJckVOFdhRwjYJgtVnZQN6gUeFnZpgchuGjpjHI5HwGCWzI+cjTyejZ6OSAPUHlyW3IPcFYYMbgRYbKgHdyPhup01qLFJztmLw6Wt5X9O/LY7VrJIWHKnqxoz9WKfB2Q1ll7Xrwk1ke78g/Fj6FzgBI2jqXERm001rPDYZxPvwvjO2ndv33Q3J7gTHd8ritURtx0rla9mJjXov6wgyXRL4PMkgg3f/njP25SKCynuXM3Z3kd+Xqvpflbx05adpFAht0OoxlaeFCe3kuIF1h7ekA3v6LBUfDlDxWMqkegj00i5FO2WDdyRsksKbt9//H/aJPhg4SBHFzkufU8r1jB99HGTD72fVmejadT6Hv/wdK15FE
sidebar_class_name: "delete api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/unregister-device.api.mdx b/docs/reference/http-api/unregister-device.api.mdx
index e749a4a..dd58372 100644
--- a/docs/reference/http-api/unregister-device.api.mdx
+++ b/docs/reference/http-api/unregister-device.api.mdx
@@ -5,7 +5,7 @@ description: "unregisterDevice"
sidebar_label: "unregisterDevice"
hide_title: true
hide_table_of_contents: true
-api: eJxtVU1T20gQ/StTfVm8JWxIsXtQstlywBAnkFBgKgfKFbc1bWliaUaZaRm8lP77Vo9sh2B8sTQf3a9fv9d6AleTRzbOjjWk0FhPuQlM/oxWJiNIgDEPkN7DFcE0gRo9VsTkZe0JQlZQhZA+Aa9rghQCe2NzSKAy9pJszgWkx20Cnn42xpOGlH1DCVis5PjCaEjAWEihRi6gncrRUDsbKEjYN0cn8qcpZN7UghNSOKMtStLqwGiqasdkuQdtAidHx/s3rkwIxubKeWXsCkujFbslWUggc1buyh2s69JkkY3BjyAXX6nQzX9QxpBA7YU7Nh1Q8t75fSJaSaDpNYbINpUQax0PMzYrIds6viHUa9l+rCNhcfGarO5uBUamu1ojU0ddrOYa16XDuFCWlGN55WK8xi6te7AXwnYM9MkZi/NS3nKs6LwpS0gASy9ZZXOXET2bzNRouVs49YTsvDDWPZ2itY4vCWOmjqc7G5q6dr4D1wTy0uhxB/LZygQ78hfekNXhqy2l5K6rnRxvtoJJwFSY08S5S/R5V9QuyThuCbEJeGS6NJWR3NPkhQCGKrDUrSrMCmNJSVeU0WTZLNYijYdirVCJTimwWqApSfdF/4ZL6dtIGnwqvWx/0/P9pvXTF0dvNjKGVn4v8bxitIq4cGJCTSWxrERLpDDA2gzI5sbSoKKBjhfC4GlhdCvMU9Z4w+toyIXxNMdAkN5PxUzbzVtpT6fUX0d2miyY620P5X1O6Ela3T2cO18hQwqfvk1gn9nzTUA1PutclahAlhUGNRs2XDhv/os9TdWHGE+9i8fez9SB82r2b3z7Z6acVd9ofuuyJbFq6tyjptDri4nmjj9WmD3DjLX5TOvt9CgIdUS8GSwjk5M9vDW5RW487aO2ih5ZxFiqueM/gvp4NTxVYXtBuRV5xQUpesSMd7qYO71O1Nw1ViZIPDDDTILOlHYVGttXHddqtjpO3gkvf5+8n72NR2vyh3PHaklrZYKaSc6DD18n32/HF1/GXy6+345Ob0YTScBj3Zv11UQQxNZHbEE94JKCejBcxIgBK1Jd8crYuOS4IK+08RRx9aNejV24SN5WosLP2DJ5jLNHjbokw+sxJLAiHzqejvpv+n/tsSeoAvkV+UPsGswYo8hM2eIdXo/76rQ0IgXvGqagDmbPtfznrKc2PlK4r6K3G/q7LkXeHmheOLfcxpk7HmzI7wmfQmcEJK7OZEJG7dQucIVxmm/U8ct9ame/3yrcqYzpkQd1icZKpMaXstf58l4kGOe4VBMNHMNEd0ICqXzcpgkULrCcfnqS8u582bay/LMhL56dJrBCb+JQFgdrE+RZQ7rAMtAesN33Cg62M7KnZE69BnjrFStGWWHZyBsksKT15uvbTttk6x5J3+0Ms4xqfnZn79Mow2U3sc5Gl6PJCNr2f2qi3Xo=
+api: eJxtVU1z2kgQ/StTfVmzJYO9m9qDks0WwdghaycuG1cOLio0mkaaIM0oMy1s1qX/vtUjII4xF6T56H79+r3WE7iaPLJxdqIhhcZ6yk1g8me0NhlBAox5gPQerghmCdTosSImL2tPELKCKoT0CXhTE6QQ2BubQwKVsZdkcy4gPW0T8PSjMZ40pOwbSsBiJceXRkMCxkIKNXIB7UyOhtrZQEHC/nHyRv40hcybWnBCCme0Q0laHRlNVe2YLPegTeDNyenhjSsTgrG5cl4Zu8bSaMVuRRYSyJyVu3IH67o0WWRj8D3IxVcqdIvvlDEkUHvhjk0HlLx3/pCIVhJoeo0hsk0lxFrHw4zNWsi2jm8I9Ua2H+tIWFy8Jqu7W4GR6a7WyNRRF6u5xk3pMC6UJeVYXrkYr7Er6x7shbAdA31yxuKilLccKzpvyhISwNJLVtncZ0TPJjM1Wu4WRp6QnRfGuqcRWuv4kjBm6ni6s6Gpa+c7cE0gL42edCCfrUyxI3/pDVkdvthSSu662snxZieYBEyFOU2du0Sfd0Xtk0zilhCbgEemS1MZyT1LXghgqAJL3arCrDCWlHRFGU2WzXIj0ngoNgqV6JQCqyWaknRf9G+4lL6NpcEj6WX7i57vt62fvTh6s5UxtPJ7iecVo1XEhRMTaiqJZSVaIoUB1mZANjeWBhUNdLwQBk9Lo1thnrLGG95EQy6NpwUGgvR+Jmbabd5Kezql/jyy12TBXO96KO8LQk/S6u7h3PkKGVL49HUKh8yebwOqyVnnqkQFsqwwqPmw4cJ581/saao+xHjqXTz2fq6OnFfzf+Lb33PlrPpKi1uXrYhVU+ceNYVeX0y0cPyxwuwZZqzNv7TZTY+CUEfE28EyNjnZ41uTW+TG0yFqq+iRRYylWjj+LaiPV8ORCrsLyq3JKy5I0SNmvNfFwulNohausTJB4oE5ZhJ0rrSr0Ni+6rhW8/Vp8k54+evN+/nbeLQmf7xwrFa0USaoueQ8+vBl+u12cvF58vni2+14dDOeSgKe6N68r6aCILY+YgvqAVcU1IPhIkYMWJHqilfGxiXHBXmljaeIqx/1auzSRfJ2EhV+JpbJY5w9atwlGV5PIIE1+dDxdNL/s39ywJ6gCuTX5I+xazBjjCIzZYd3eD3pq1FpRAreNUxBHc2fa/n3eU9tfaTwUEVvt/R3XYq8PdCicG61i7NwPNiS3xM+hc4ISFydyYSM2qld4ArjNN+q46f71N5+v1S4VxnTIw/qEo2VSI0vZa/z5b1IMM5xqSYaOIaJ7oQEUvm4zRIoXGA5/fQk5d35sm1l+UdDXjw7S2CN3sShLA7WJsizhnSJZaADYPvvFRztZmRPyZx6DfDOK1aMssaykTdIYEWb7de3nbXJzj2SvtsZZhnV/OzOwadRhst+Yp2NL8fTMbTt/2H43XY=
sidebar_class_name: "delete api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/update-display-name.api.mdx b/docs/reference/http-api/update-display-name.api.mdx
index 3e6d1ec..9d03cc7 100644
--- a/docs/reference/http-api/update-display-name.api.mdx
+++ b/docs/reference/http-api/update-display-name.api.mdx
@@ -5,7 +5,7 @@ description: "updateDisplayName"
sidebar_label: "updateDisplayName"
hide_title: true
hide_table_of_contents: true
-api: eJztVk1v20YQ/SuLuTQuaMkO0h6YNIWsOIlSOzH8gRwMIRqSY3IjcpfZHUpWDf33YnYpWbGNHgqkp/DE3R3OzJt585Z3YFtyyNqaSQEpdG2BTG+0b2tcfcSGIAHG0kN6DacE0wQcfevI85EtVpDehaV2VEDKrqMEcmuYDMsRtm2t8+B7+NVbI3s+r6hBeeNVS5CCzb5SzpBA6yQT1uTltNjJ4N7Ys9OmhAQabU7IlFxBephAg7eb1YuD9TrZSer6O0/TBFhzLa52IF4FzLBex099a42PWTw/OAjJkM+dbgUIpHBZkTK0VL1jZWKV/g/g/xVb0YN78RSeiVlgrYsfhIecs+4JJBKgeLK3ZLpGwBnLo5z1QpIxls8Ji5Uc37YBftg8I1PErzwjb9EmoCOoM1zVFsNGXVOJ9akN/jozN3Zp3kWoxvIHqw1mtaxKbOhtV9eQANZOosrhNiI61rlu0XDcGDtCtk4qFt/GaIzlE8IQKdbpyviuba2LyXWenFS5r/zOziXOyUACN06TKfwnUwtkR6X2HKf0fNP+BHSDJV1ae4KujKC2QSbhSAqbgEOmE91oiT1NHjR/pDwLbtVgXmlDSrqidEGG9c1Km1Itq5VC1U+9ukFdUzGAe7IdS4PH0suH7Iytnz4wPe8HbEvJw8eUPNXeS2zrVN9IxTZW5ictf9Lyh9Ny/TCfp67Fhriycme2XeAXyv0DQ2z1kEypDQ0bGvaiut+Lqqe8c5pXkF7fwY12lKEnSK+n6+n94YX0JtL03mRLyIq53TRQ1hmhI+lzfHlrXYMMKXz4fAmPy/q2d6gmb+JIJcqTYYVezUYdV9bpv0NDU3UU/KlXwez1TD2zTs3+DKs/Zsoa9ZmyC5vPiVXXlg4L8nsDmaDM8vsG852csdV/0SrwXxAQFiHjUJQUjnVJZv9Clwa5c/Q4a6PoloWJtcos/+LV+9PRWPnNB8ouyCmuSNEt5rwlRWaLVaIy2xmRj2Aww1yczlRhG9RmoGKt1WxxmLySuvz+4vXsZTBtye1nltWcVkp7NZOYz44+XX65mLz7OPn47svF8fj8+FIC8KTYmw2U/BjEzofcvFrinLxaaq6CR48NqQheaRO2LFfkVKEdhbwGgayiZef3f1nHt9i0NT36OdjRLG1ubCj3htFS0YlhchikSh3HtEZnE0hgQc7Hyh4Mng9+e1RvweHJLcjtY6QEY/AiErRBODqbDNS41kIeZzsmr57Ndsn/62xP9WOn8DHvXvYNi30NlV5SVlk73/jJLA/7du1JB6QBISERgVwENbCttZ4bDOLf8ykOq+qnVfXj+h3GLTOZbnnY1qiN+OpcLWdxlK+FtkH4BU8YeHGzO9DTBCrrWWzv7gTelavXa9n+1pGTKZ8msECng4bLmCcb9osAzGkFKYzjjbbf6+IC6y7OzIPbbZ1svhjlObX8r7bTHX06uxIlyPof9ibcb+BwGUR4CSlAAjYUJmhO2LuDGk3ZYSm20aU8/wDwdD+L
+api: eJztVk1v20YQ/SuLuTQuaMlugx6YNIWsOIkSOzH8gRwMIRqSY3IjcpfZHUpWDf33YnYpWbGNHgqkp/DE3R3OzJt585Z3YFtyyNqaSQEpdG2BTK+1b2tcfcSGIAHG0kN6DacE0wQcfevI85EtVpDehaV2VEDKrqMEcmuYDMsRtm2t8+B7+NVbI3s+r6hBeeNVS5CCzb5SzpBA6yQT1uTltNjJ4N7Ys9OmhAQabU7IlFxBephAg7eb1fOD9TrZSer6O0/TBFhzLa52IF4FzLBex099a42PWfx2cBCSIZ873QoQSOGyImVoqXrHysQq/R/A/yu2ogf3/Ck8E7PAWhc/CA85Z90TSCRA8WRvyXSNgDOWRznrhSRjLJ8TFis5vm0D/LB5RqaIX3lG3qJNQEdQZ7iqLYaNuqYS61Mb/HVmbuzSvI1QjeX3VhvMalmV2NCbrq4hAaydRJXDbUR0rHPdouG4MXaEbJ1ULL6N0RjLJ4QhUqzTlfFd21oXk+s8OalyX/mdnUuck4EEbpwmU/hPphbIjkrtOU7p+ab9CegGS7q09gRdGUFtg0zCkRQ2AYdMJ7rREnuaPGj+SHkW3KrBvNKGlHRF6YIM65uVNqVaViuFqp96dYO6pmIA92Q7lgaPpZcP2RlbP31get4P2JaSh48peaq9l9jWqb6Rim2szE9a/qTlD6fl+mE+T12LDXFl5c5su8AvlPsHhtjqIZlSGxo2NOxFdb8XVU955zSvIL2+gxvtKENPkF5P19P7wwvpTaTpvcmWkBVzu2mgrDNCR9Ln+PLGugYZUnj/+RIel/VN71BNXseRSpQnwwq9mo06rqzTf4eGpuoo+FMvg9mrmXpmnZr9FVZ/zpQ16jNlFzafE6uuLR0W5PcGMkGZ5XcN5js5Y6s/0CrwXxAQFiHjUJQUjnVJZv9Clwa5c/Q4a6PoloWJtcos/+LVu9PRWPnNB8ouyCmuSNEt5rwlRWaLVaIy2xmRj2Aww1yczlRhG9RmoGKt1WxxmLyUuvzx/NXsRTBtye1nltWcVkp7NZOYz44+XX65mLz9OPn49svF8fj8+FIC8KTYmw2U/BjEzofcvFrinLxaaq6CR48NqQheaRO2LFfkVKEdhbwGgayiZef3f1nHt9i0NT36OdjRLG1ubCj3htFS0YlhchikSh3HtEZnE0hgQc7Hyh4Mfh8cPKq34PDkFuT2MVKCMXgRCdogHJ1NBmpcayGPsx2TV89mu+T/dban+rFT+Jh3L/qGxb6GSi8pq6ydb/xklod9u/akA9KAkJCIQC6CGtjWWs8NBvHv+RSHVfXTqvpx/Q7jlplMtzxsa9RGfHWulrM4ytdC2yD8gicMvLjZHehpApX1LLZ3dwLvytXrtWx/68jJlE8TWKDTQcNlzJMN+0UA5rSCFMbxRtvvdXGBdRdn5sHttk42X4zynFr+V9vpjj6dXYkSZP0PexPuN3C4DCK8hBQgARsKEzQn7N1BjabssBTb6FKefwDnwj+H
sidebar_class_name: "put api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/http-api/update-username.api.mdx b/docs/reference/http-api/update-username.api.mdx
index e0d2467..50eb17d 100644
--- a/docs/reference/http-api/update-username.api.mdx
+++ b/docs/reference/http-api/update-username.api.mdx
@@ -5,7 +5,7 @@ description: "updateUsername"
sidebar_label: "updateUsername"
hide_title: true
hide_table_of_contents: true
-api: eJztV01v20YQ/SuLudQuaMlJ0wJV0hSy6iRK7cTwB3IwhGhIjsmNyF1mdyhZNfTfi9mlLMUyCvSQnOyLuV8z8968mV3dgW3IIWtrxjkMoG1yZLry5AzWBAkwFh4G13BKMEnA0deWPB/ZfAmDuzDUjnIYsGspgcwaJsOyhE1T6SwY7n/x1sicz0qqUb542RAMwKZfKGNIoHESBmvystqu3W92enbaFJBArc0JmYJLGPySQI2369Hzw9Uq2YroemNmkgBrrsTOGtlVwAmrVTzkG2t8dP788FD+5eQzpxuJHwZwWZIytFDthpjvjvX/w8k7PC8egzA2c6x0/h0gkHPWPRK/OMgfTSKZthZIxvIwYz2XYIzlc8J8Kcu3TQAdJs/I5PGUZ5FmhzQBHQGd4bKyGCaqigqsTm2w15qZsQvzNkI1lt9bbTCtZFRgTW/aqoIEsHLiVRbvPaJjnekGDceJkSNk64Sx+DVCYyyfEAZPkacr49umsS4Gt2a5Y31r5hJnZCCBG6fJ5P6jqQSyo0J7joV4vk56ArrGgi6tPUFXRFD3TsZhSYhNwCHTia61+J4kDxI/VJ4Ft6oxK7UhJVlROifD+mapTaEW5VKh6mpb3aCuKO/BRmXHkuCR5PKhJmPqJw+2nnf1dC/HZ7tyPNXei2/rVJdIxTYy8yTLJ1n+EFn+vivLdUNVXQIU45Mon0T5g0S5ehjPznOsJi6tPNSaNogL5ekDfWx0n0yhDfVr6m9d8Z6y1mlewuD6Dm60oxQ9weB6sppsFi8kKVGfmy33SiyZm3XmZJwSOpIEx4831tXIMID3ny5hl883nUE1/is2+ER5MqzQq+mw5dI6/U/I5EAdBXvqVdj2eqr2rFPTP8Poj6myRn2i9MJmM2LVNoXDnPx+T0ontfyuxmwrZmz037QMwhcEhHmIOD604FgXZA4udGGQW0e7URtFtywcViq1/JNX706HI+XXB5Sdk1NckqJbzPheDanNl4lKbWvkMgsbppiJ0anKbY3a9FTkWk3nz5JXwstvL15PX4atDbmD1LKa0VJpr6bic+/o4+Xni/HbD+MPbz9fHI/Ojy/FAY/z/WlPyas0Zj3E5tUCZ+TVQnMZLHppZBG80iZMWS7JqVw7CnH1gkqliZ1vXvbHt1g3FX37Ot3qVNrc2MD1WsdC59gwOQwNSh3HmIZnY0hgTs5HWg97z3u/7pAtIDy5ObkDjHpgDFak8azhDc/GPTWqtCjH2ZbJq73ptup/nu6rrtgU7oruZZetmNRA84LS0trZ2k5qud/lal/oF/ZDQFL6mbTRILXGeq4xtPyOl1iiaqtGv8F3L0mmW+43FWojdlpXyVqs32vRa2j1giVU+VYTlJZRWs+y7+5OYF25arWS6a8tOSntSQJzdDp0bKntZC15qfoZLWEAo3h/HXRdcI5VGwvlwV22StYnhllGDf/n3slWQzq7kvJPu1+GdbjNwOEitNwFDAASsIGU0GjC3B1UaIoWC9kbTcrfv0rCGQ4=
+api: eJztV9tu20YQ/ZXFvNQuaMm5oECVNIWsOolSOzF8QR4MIRqSY3IjcpfZHUpWDf17MbuUpVhGgT4kT/aLubeZOWfOzK7uwDbkkLU14xwG0DY5Ml15cgZrggQYCw+DazglmCTg6FtLno9svoTBXRhqRzkM2LWUQGYNk2FZwqapdBYM9796a2TOZyXVKF+8bAgGYNOvlDEk0DgJgzV5WW3X7jc7PTttCkig1uaETMElDF4kUOPtevT8cLVKtiK63piZJMCaK7GzRnYVcMJqFQ/5xhofnT8/PJR/OfnM6UbihwFclqQMLVS7IeaHY/3/cPIOz8vHIIzNHCud/wAI5Jx1j8QvDvJHk0imrQWSsTzMWM8lGGP5nDBfyvJtE0CHyTMyeTzlWaTZIU1AR0BnuKwshomqogKrUxvstWZm7MK8i1CN5Q9WG0wrGRVY09u2qiABrJx4lcV7j+hYZ7pBw3Fi5AjZOmEsfo3QGMsnhMFT5OnK+LZprIvBrVnuWN+aucQZGUjgxmkyuf9kKoHsqNCeYyGer5OegK6xoEtrT9AVEdS9k3FYEmITcMh0omstvifJg8QPlWfBrWrMSm1ISVaUzsmwvllqU6hFuVSoutpWN6grynuwUdmxJHgkuXyoyZj6yYOt51093cvx2a4cT7X34ts61SVSsY3MPMnySZY/RZa/78py3VBVlwDF+CTKJ1H+JFGuHsaz8xyriUsrD7WmDeJCefpAHxvdJ1NoQ/2a+ltXvKesdZqXMLi+gxvtKEVPMLierCabxQtJStTnZsu9EkvmZp05GaeEjiTB8eOtdTUyDODD50vY5fNtZ1CN/4oNPlGeDCv0ajpsubRO/xMyOVBHwZ56Hba9mao969T0zzD6Y6qsUZ8pvbDZjFi1TeEwJ7/fk9JJLb+vMduKGRv9Ny2D8AUBYR4ijg8tONYFmYMLXRjk1tFu1EbRLQuHlUot/+LV+9PhSPn1AWXn5BSXpOgWM75XQ2rzZaJS2xq5zMKGKWZidKpyW6M2PRW5VtP5s+S18PLbyzfTV2FrQ+4gtaxmtFTaq6n43Dv6dPnlYvzu4/jjuy8Xx6Pz40txwON8f9pT8iqNWQ+xebXAGXm10FwGi14aWQSvtAlTlktyKteOQly9oFJpYuebl/3xLdZNRd+/Trc6lTY3NnC91rHQOTZMDkODUscxpuHZGBKYk/OR1sPei97hDtkCwpObkzvAqAfGYEUazxre8GzcU6NKi3KcbZm82ptuq/7X6b7qik3hruheddmKSQ00LygtrZ2t7aSW+12u9oV+YT8EJKWfSRsNUmus5xpDy+94iSWqtmr0O3z3kmS65X5ToTZip3WVrMX6vRa9hlYvWEKVbzVBaRml9Sz77u4E1pWrViuZ/taSk9KeJDBHp0PHltpO1pKXqp/REgYwivfXQdcF51i1sVAe3GWrZH1imGXU8H/unWw1pLMrKf+0+2VYh9sMHC5Cy13AACABG0gJjSbM3UGFpmixkL3RpPz9C0IwGQo=
sidebar_class_name: "put api-method"
info_path: docs/reference/http-api/eigeninteractive-engine-api
custom_edit_url: null
diff --git a/docs/reference/typescript/kernel.md b/docs/reference/typescript/kernel.md
index 4b93bc0..7b5e0a3 100644
--- a/docs/reference/typescript/kernel.md
+++ b/docs/reference/typescript/kernel.md
@@ -10,7 +10,7 @@ its inputs alone.
### GameBugError
-Defined in: [eigen-server/packages/kernel/src/errors.ts:15](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L15)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:15](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L15)
A broken game/engine invariant: a bug, not a rejection.
@@ -73,7 +73,7 @@ Error.constructor
### CommitInput
-Defined in: [eigen-server/packages/kernel/src/commit.ts:96](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L96)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:96](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L96)
#### Properties
@@ -83,7 +83,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:96](https://github.com/e
game: GameRow;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:97](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L97)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:97](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L97)
##### intent
@@ -91,7 +91,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:97](https://github.com/e
intent: Intent;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:102](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L102)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:102](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L102)
##### now
@@ -99,7 +99,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:102](https://github.com/
now: number;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:105](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L105)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:105](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L105)
The commit instant (epoch ms), sampled once by the host and never read
here.
@@ -110,7 +110,7 @@ here.
roster: Seat[];
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:101](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L101)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:101](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L101)
##### rules
@@ -118,7 +118,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:101](https://github.com/
rules: GameRules;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:108](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L108)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:108](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L108)
The version unit for the game's `schemaVersion`, already resolved by
the host from the `GameModule.versions` map.
@@ -132,7 +132,7 @@ optional staleViews?: {
};
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:116](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L116)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:116](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L116)
Same-view material for a stale game action: the acting seat's stored
frames at `expectedVersion` and at the current version. Only consulted
@@ -158,7 +158,7 @@ expected: SeatView | null;
state: StateRow | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:100](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L100)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:100](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L100)
The latest transition, or null before v0 (only a `start` intent is
meaningful then).
@@ -167,7 +167,7 @@ meaningful then).
### CommitPlan
-Defined in: [eigen-server/packages/kernel/src/commit.ts:139](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L139)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:139](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L139)
#### Properties
@@ -177,7 +177,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:139](https://github.com/
action: TransitionAction | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:142](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L142)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:142](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L142)
##### alarm
@@ -185,7 +185,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:142](https://github.com/
alarm: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:155](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L155)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:155](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L155)
The instant the DO must arm its alarm at, the true deadline plus the
grace window, or null to clear it.
@@ -196,7 +196,7 @@ grace window, or null to clear it.
effects: Effect[];
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:156](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L156)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:156](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L156)
##### frames
@@ -204,7 +204,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:156](https://github.com/
frames: ObservationFrame[];
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:145](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L145)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:145](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L145)
Per-seat projected frames (identified seats only), persisted with the
transition, fanned out over sockets. No raw state escapes the kernel.
@@ -215,7 +215,7 @@ transition, fanned out over sockets. No raw state escapes the kernel.
nextState: StateRow;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:141](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L141)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:141](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L141)
The next transition row, already versioned (`v+1`, or 0 for start).
@@ -225,7 +225,7 @@ The next transition row, already versioned (`v+1`, or 0 for start).
outcomes: OutcomeEntry[] | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:152](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L152)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:152](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L152)
Per-seat results when this transition ends the game, else null.
@@ -238,7 +238,7 @@ the host delivers them as a follow-up versioned ratings transition.
### GameRow
-Defined in: [eigen-server/packages/kernel/src/commit.ts:32](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L32)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:32](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L32)
The game's standing configuration: the DO `meta` snapshot.
@@ -250,7 +250,7 @@ The game's standing configuration: the DO `meta` snapshot.
budgetSeconds: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:39](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L39)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:39](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L39)
##### config
@@ -258,7 +258,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:39](https://github.com/e
config: JsonObject;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:37](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L37)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:37](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L37)
Stored creation config; parsed against the version unit's config schema
before any hook sees it.
@@ -269,7 +269,7 @@ before any hook sees it.
incrementSeconds: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:40](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L40)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:40](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L40)
##### rated
@@ -277,7 +277,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:40](https://github.com/e
rated: boolean;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:41](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L41)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:41](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L41)
##### ratingPool
@@ -285,7 +285,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:41](https://github.com/e
ratingPool: string | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:42](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L42)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:42](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L42)
##### schemaVersion
@@ -293,7 +293,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:42](https://github.com/e
schemaVersion: number;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:34](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L34)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:34](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L34)
##### status
@@ -301,7 +301,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:34](https://github.com/e
status: GameStatus;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:33](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L33)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:33](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L33)
##### turnSeconds
@@ -309,13 +309,13 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:33](https://github.com/e
turnSeconds: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L38)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:38](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L38)
***
### NextDeadline
-Defined in: [eigen-server/packages/kernel/src/timing.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L48)
#### Properties
@@ -325,7 +325,7 @@ Defined in: [eigen-server/packages/kernel/src/timing.ts:48](https://github.com/e
deadline: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:49](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L49)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:49](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L49)
##### turnStartedAt
@@ -333,13 +333,13 @@ Defined in: [eigen-server/packages/kernel/src/timing.ts:49](https://github.com/e
turnStartedAt: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:50](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L50)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:50](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L50)
***
### ObservationFrame
-Defined in: [eigen-server/packages/kernel/src/observe.ts:12](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/observe.ts#L12)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:12](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/observe.ts#L12)
One seat's projected frame, tagged with its seat. The host stamps
version/timing when it persists and fans these out.
@@ -352,7 +352,7 @@ version/timing when it persists and fans these out.
data: JsonObject;
```
-Defined in: [eigen-server/packages/kernel/src/observe.ts:14](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/observe.ts#L14)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:14](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/observe.ts#L14)
##### pendingPlayers
@@ -360,7 +360,7 @@ Defined in: [eigen-server/packages/kernel/src/observe.ts:14](https://github.com/
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/kernel/src/observe.ts:15](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/observe.ts#L15)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:15](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/observe.ts#L15)
##### playerIndex
@@ -368,13 +368,13 @@ Defined in: [eigen-server/packages/kernel/src/observe.ts:15](https://github.com/
playerIndex: number;
```
-Defined in: [eigen-server/packages/kernel/src/observe.ts:13](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/observe.ts#L13)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:13](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/observe.ts#L13)
***
### PlayerInput
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:26](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L26)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:26](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L26)
A player seat to be rated. Self-contained: each seat's current
`mu`/`sigma` is bundled, so this module never reads a store.
@@ -393,7 +393,7 @@ A player seat to be rated. Self-contained: each seat's current
botId: string | null;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:29](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:29](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L29)
##### placement
@@ -401,7 +401,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:29](https://github.com/
placement: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:31](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L31)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:31](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L31)
Ordinal finish rank (1 = best); ties share the same value.
@@ -411,7 +411,7 @@ Ordinal finish rank (1 = best); ties share the same value.
playerIndex: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:27](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L27)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:27](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L27)
##### teamIndex
@@ -419,7 +419,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:27](https://github.com/
teamIndex: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:34](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L34)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:34](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L34)
Players sharing a teamIndex are rated as one team. For individual
games this equals playerIndex.
@@ -430,13 +430,13 @@ games this equals playerIndex.
userId: string | null;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:28](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L28)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:28](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L28)
***
### RatingDelta
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:54](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L54)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:54](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L54)
One rated identity's before → after, exactly the rating_history row minus
store keys. Computed by the D1 applier inside the rating CAS and delivered
@@ -450,7 +450,7 @@ on the post-finish ratings transition (the `kind: "ratings"` action).
displayAfter: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:62](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L62)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:62](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L62)
##### displayBefore
@@ -458,7 +458,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:62](https://github.com/
displayBefore: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:59](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L59)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:59](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L59)
##### displayChange
@@ -466,7 +466,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:59](https://github.com/
displayChange: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:63](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:63](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L63)
##### identity
@@ -474,7 +474,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:63](https://github.com/
identity: RatingIdentity;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:55](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L55)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:55](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L55)
##### muAfter
@@ -482,7 +482,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:55](https://github.com/
muAfter: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:60](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L60)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:60](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L60)
##### muBefore
@@ -490,7 +490,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:60](https://github.com/
muBefore: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:57](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L57)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:57](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L57)
##### pool
@@ -498,7 +498,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:57](https://github.com/
pool: string;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:56](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L56)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:56](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L56)
##### sigmaAfter
@@ -506,7 +506,7 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:56](https://github.com/
sigmaAfter: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:61](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L61)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:61](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L61)
##### sigmaBefore
@@ -514,13 +514,13 @@ Defined in: [eigen-server/packages/kernel/src/ratings.ts:61](https://github.com/
sigmaBefore: number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:58](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L58)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:58](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L58)
***
### RatingResult
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L47)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:47](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L47)
One identity's newly computed rating: the pure OpenSkill posterior,
before the store-owned CAS revision is attached by the applier.
@@ -537,13 +537,13 @@ before the store-owned CAS revision is attached by the applier.
identity: RatingIdentity;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L48)
***
### Rejected
-Defined in: [eigen-server/packages/kernel/src/errors.ts:42](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L42)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:42](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L42)
An intent the kernel refused. A value, not a throw: rejections are part
of the normal protocol.
@@ -556,7 +556,7 @@ of the normal protocol.
code: RejectCode;
```
-Defined in: [eigen-server/packages/kernel/src/errors.ts:44](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L44)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:44](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L44)
##### message
@@ -564,7 +564,7 @@ Defined in: [eigen-server/packages/kernel/src/errors.ts:44](https://github.com/e
message: string;
```
-Defined in: [eigen-server/packages/kernel/src/errors.ts:45](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L45)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:45](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L45)
##### rejected
@@ -572,13 +572,13 @@ Defined in: [eigen-server/packages/kernel/src/errors.ts:45](https://github.com/e
rejected: true;
```
-Defined in: [eigen-server/packages/kernel/src/errors.ts:43](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L43)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:43](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L43)
***
### Seat
-Defined in: [eigen-server/packages/kernel/src/commit.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L47)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:47](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L47)
One seat of the roster. Both ids null ⇒ the account was purged mid-game
(the seat plays on as "Deleted User" for display, but can never act).
@@ -591,7 +591,7 @@ One seat of the roster. Both ids null ⇒ the account was purged mid-game
botId: string | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:50](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L50)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:50](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L50)
##### playerIndex
@@ -599,7 +599,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:50](https://github.com/e
playerIndex: number;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L48)
##### type
@@ -607,7 +607,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:48](https://github.com/e
type: "bot" | "human";
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L51)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:51](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L51)
##### userId
@@ -615,13 +615,13 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:51](https://github.com/e
userId: string | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:49](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L49)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:49](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L49)
***
### SeatView
-Defined in: [eigen-server/packages/kernel/src/guards.ts:86](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L86)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:86](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L86)
A seat's stored projection at one version: what the same-view compare
runs on (and what the DO persists per transition as `frames[]`).
@@ -634,7 +634,7 @@ runs on (and what the DO persists per transition as `frames[]`).
data: JsonObject;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:87](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L87)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:87](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L87)
##### pendingPlayers
@@ -642,13 +642,13 @@ Defined in: [eigen-server/packages/kernel/src/guards.ts:87](https://github.com/e
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:88](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L88)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:88](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L88)
***
### StateRow
-Defined in: [eigen-server/packages/kernel/src/commit.ts:56](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L56)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:56](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L56)
The latest committed transition: state plus the engine-owned clocks. All
instants are epoch milliseconds.
@@ -661,7 +661,7 @@ instants are epoch milliseconds.
deadline: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:63](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:63](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L63)
The true turn deadline shown to clients; the alarm arms at
`deadline + grace`.
@@ -672,7 +672,7 @@ The true turn deadline shown to clients; the alarm arms at
pending: number[];
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:59](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L59)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:59](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L59)
##### playerTimes
@@ -680,7 +680,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:59](https://github.com/e
playerTimes: number[] | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:65](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L65)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:65](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L65)
Per-seat budget banks (ms), budget mode only.
@@ -690,7 +690,7 @@ Per-seat budget banks (ms), budget mode only.
rngSeed: string;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:60](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L60)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:60](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L60)
##### state
@@ -698,7 +698,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:60](https://github.com/e
state: JsonObject;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:58](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L58)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:58](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L58)
##### turnStartedAt
@@ -706,7 +706,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:58](https://github.com/e
turnStartedAt: number | null;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:66](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L66)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:66](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L66)
##### version
@@ -714,7 +714,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:66](https://github.com/e
version: number;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:57](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L57)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:57](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L57)
## Type Aliases
@@ -738,7 +738,7 @@ type Effect =
};
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:137](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L137)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:137](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L137)
A push/wake the host should attempt post-commit (single attempt + error
log, with no retry machinery in v1). The kernel names seats; the host resolves
@@ -752,7 +752,7 @@ delivery (FCM targets, bot webhook vs local bot).
type GameStatus = "waiting" | "ready" | "active" | "finished" | "aborted";
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:29](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:29](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L29)
***
@@ -782,7 +782,7 @@ type Intent =
};
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:73](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L73)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:73](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L73)
What the host asks the kernel to do: the kernel-facing half of a
`Command` (authorization already happened at the edge; dedupe at the DO).
@@ -905,7 +905,7 @@ type ParseResult =
};
```
-Defined in: [eigen-server/packages/kernel/src/schema.ts:13](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/schema.ts#L13)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:13](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/schema.ts#L13)
A client payload parse: refusal is the caller's fault, so failure comes
back as a value for `commit()` to turn into a rejection.
@@ -932,7 +932,7 @@ type RejectCode =
| "abstain";
```
-Defined in: [eigen-server/packages/kernel/src/errors.ts:20](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L20)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:20](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L20)
Why an intent was refused. Stable machine codes: the host's transport
mapping and the client's retry policy key on these, so treat renames as
@@ -966,7 +966,7 @@ type TransitionAction =
};
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:132](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L132)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:132](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L132)
The action-log entry for a transition. Null only for the start transition
(v0), which no action produced. `playerIndex` is the performer's seat, and
@@ -985,7 +985,7 @@ engine's, not the game's opaque payload.
const DEADLINE_GRACE_MS: 750 = 750;
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:25](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L25)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:25](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L25)
Grace window (ms) added to every deadline comparison so a player who
submits on time is not rejected because network latency carried the request
@@ -1003,7 +1003,7 @@ function assertBudgetPending(
schemaVersion): void;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:26](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L26)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:26](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L26)
Enforce budget mode's sequential-pending rule at the source: an
accumulated clock only meters individual thinking time when at most one
@@ -1035,7 +1035,7 @@ function assertForfeitPending(
schemaVersion): void;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:36](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L36)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:36](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L36)
Enforce that a forfeit actually removes the forfeited seat: a hook that
leaves `targetSeat` in the pending set is a game bug. Left uncaught, the
@@ -1065,7 +1065,7 @@ function assertHookPayload(
what): asserts value is T;
```
-Defined in: [eigen-server/packages/kernel/src/schema.ts:63](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/schema.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:63](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/schema.ts#L63)
Validate a payload produced by a game hook. Unlike client parsing, a
failure is always a game bug. Validate-only: callers retain the hook's
@@ -1101,7 +1101,7 @@ function assertHookState(
schemaVersion): void;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:16](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L16)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:16](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L16)
Validate the state a hook returned against the game's version schema
before it is committed, catching a hook that wrote a malformed or
@@ -1131,7 +1131,7 @@ function assertPendingIdentified(
schemaVersion): void;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L48)
Enforce that every pending seat has someone behind it: a seat whose
account was purged mid-game (both ids null) can never act, so a hook that
@@ -1160,7 +1160,7 @@ catches any later hook resurrecting the seat.
function canonicalJson(value): string;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:69](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L69)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:69](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L69)
Canonical JSON: deterministic serialization with object keys sorted and
`undefined` object values treated as absent, so two structurally equal
@@ -1184,7 +1184,7 @@ views compare byte-identical regardless of construction order.
function commit(input): CommitPlan | Rejected;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:166](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L166)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:166](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L166)
#### Parameters
@@ -1204,7 +1204,7 @@ Defined in: [eigen-server/packages/kernel/src/commit.ts:166](https://github.com/
function computeNextDeadline(input): NextDeadline;
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:67](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L67)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:67](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L67)
Computes the deadline and `turnStartedAt` for the next action: the
precedence chain used by start and every commit mode. Pass
@@ -1245,7 +1245,7 @@ graceful-degradation safeguard should a multi-pending state arrive anyway.
function computeRatings(players): RatingResult[];
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:196](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L196)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:196](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L196)
Compute every identity's new rating for one finished game.
@@ -1280,7 +1280,7 @@ row left to update.
function deadlineExpired(deadline, now): boolean;
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:30](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L30)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:30](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L30)
TRUE once a turn deadline (plus the grace window) has genuinely passed,
measured against the injected `now`. A null deadline (untimed turn) is
@@ -1310,7 +1310,7 @@ function deductBank(
incrementSeconds): number[];
```
-Defined in: [eigen-server/packages/kernel/src/timing.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/timing.ts#L38)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:38](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/timing.ts#L38)
Deducts the acting player's elapsed thinking time from their budget bank
and applies the Fischer increment. Returns a new `playerTimes` array (ms
@@ -1339,7 +1339,7 @@ at 0, not negative.
function defaultRating(): Rating;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:73](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L73)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:73](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L73)
The OpenSkill prior for a never-rated identity.
@@ -1355,7 +1355,7 @@ The OpenSkill prior for a never-rated identity.
function deriveRng(seed, version): Rng;
```
-Defined in: [eigen-server/packages/kernel/src/rng.ts:29](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/rng.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/rng.ts:29](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/rng.ts#L29)
The deterministic RNG for one transition: rand-seed's sfc32 keyed by the
game's base seed and the state version the envelope will commit as. The
@@ -1383,7 +1383,7 @@ derivation is fixed, so recorded games stay replayable.
function displayRating(mu, sigma): number;
```
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:68](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/ratings.ts#L68)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:68](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/ratings.ts#L68)
max(0, round((mu − 3σ) · 40)): the one server-side home of the display
formula (the client mirrors it for optimistic display only).
@@ -1407,7 +1407,7 @@ formula (the client mirrors it for optimistic display only).
function fanOutObservations(rules, args): ObservationFrame[];
```
-Defined in: [eigen-server/packages/kernel/src/observe.ts:25](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/observe.ts#L25)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:25](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/observe.ts#L25)
Project the new state into one slice per seat: the eager fan-out the host
persists per transition (frames serve live delivery and the same-view
@@ -1436,7 +1436,7 @@ decision here.
function isRejected(result): result is Rejected;
```
-Defined in: [eigen-server/packages/kernel/src/commit.ts:160](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/commit.ts#L160)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:160](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/commit.ts#L160)
Type guard: did `commit()` refuse the intent?
@@ -1461,7 +1461,7 @@ function parseClientPayload(
what): ParseResult;
```
-Defined in: [eigen-server/packages/kernel/src/schema.ts:40](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/schema.ts#L40)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:40](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/schema.ts#L40)
Parse a client-submitted payload (an action's `data`, a create request's
`config`) through its schema. Failure is the caller's fault. Returns the
@@ -1499,7 +1499,7 @@ function parseStoredPayload(
schemaVersion): T;
```
-Defined in: [eigen-server/packages/kernel/src/schema.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/schema.ts#L51)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:51](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/schema.ts#L51)
Parse a stored payload (a state row, the game's config) through its
schema. Failure means corrupted data or a schema that no longer matches
@@ -1532,7 +1532,7 @@ what this version historically wrote: an engine-side bug, thrown.
function randomSeed(): string;
```
-Defined in: [eigen-server/packages/kernel/src/rng.ts:18](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/rng.ts#L18)
+Defined in: [eigen-server/packages/kernel/src/rng.ts:18](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/rng.ts#L18)
A fresh base seed for a new game: 128 random bits, hex-encoded. Stored on
the game's v0 state row and copied onto every later row (server-only,
@@ -1550,7 +1550,7 @@ never expose it: the whole randomness of the game is derivable from it).
function reject(code, message): Rejected;
```
-Defined in: [eigen-server/packages/kernel/src/errors.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/errors.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/errors.ts#L48)
#### Parameters
@@ -1571,7 +1571,7 @@ Defined in: [eigen-server/packages/kernel/src/errors.ts:48](https://github.com/e
function sameView(a, b): boolean;
```
-Defined in: [eigen-server/packages/kernel/src/guards.ts:100](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/kernel/src/guards.ts#L100)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:100](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/kernel/src/guards.ts#L100)
The same-view rule: a stale-`expectedVersion` action is accepted
iff the acting seat's own projected observation (slice `data` plus the
diff --git a/docs/reference/typescript/rules.md b/docs/reference/typescript/rules.md
index 5558f1d..31f91cf 100644
--- a/docs/reference/typescript/rules.md
+++ b/docs/reference/typescript/rules.md
@@ -9,7 +9,7 @@ helpers: it has no runtime dependencies and pulls in no engine code.
### IllegalMoveError
-Defined in: [eigen-server/packages/rules/src/helpers.ts:14](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/helpers.ts#L14)
+Defined in: [eigen-server/packages/rules/src/helpers.ts:14](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/helpers.ts#L14)
Thrown by a game's `applyAction` to reject a move that breaks the rules.
the *expected* failure of the hook (a mis-tap, a client bug), rendered to
@@ -76,7 +76,7 @@ Error.constructor
### ApplyActionArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:122](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L122)
+Defined in: [eigen-server/packages/rules/src/contract.ts:122](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L122)
#### Extends
@@ -98,7 +98,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:122](https://github.com
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L113)
###### Inherited from
@@ -112,7 +112,7 @@ HookContext.config
data: TAction;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:125](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L125)
+Defined in: [eigen-server/packages/rules/src/contract.ts:125](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L125)
##### pending
@@ -120,7 +120,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:125](https://github.com
pending: number[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:124](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L124)
+Defined in: [eigen-server/packages/rules/src/contract.ts:124](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L124)
##### playerIndex
@@ -128,7 +128,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:124](https://github.com
playerIndex: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:126](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L126)
+Defined in: [eigen-server/packages/rules/src/contract.ts:126](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L126)
##### rng
@@ -136,7 +136,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:126](https://github.com
rng: Rng;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:128](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L128)
+Defined in: [eigen-server/packages/rules/src/contract.ts:128](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L128)
Deterministic per-transition RNG. See [Rng](#rng-4).
@@ -146,13 +146,13 @@ Deterministic per-transition RNG. See [Rng](#rng-4).
state: TState;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:123](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L123)
+Defined in: [eigen-server/packages/rules/src/contract.ts:123](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L123)
***
### ApplyLifecycleArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:140](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L140)
+Defined in: [eigen-server/packages/rules/src/contract.ts:140](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L140)
#### Extends
@@ -173,7 +173,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:140](https://github.com
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L113)
###### Inherited from
@@ -187,7 +187,7 @@ HookContext.config
data: LifecycleAction;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:149](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L149)
+Defined in: [eigen-server/packages/rules/src/contract.ts:149](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L149)
##### pending
@@ -195,7 +195,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:149](https://github.com
pending: number[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:146](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L146)
+Defined in: [eigen-server/packages/rules/src/contract.ts:146](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L146)
Seats awaiting an action. For `timeout` these are exactly the seats that
ran out of time, so resolve the whole set in one envelope (you may declare a
@@ -208,7 +208,7 @@ draw). For `forfeit`/`autoForfeit`, the target seat is in
rng: Rng;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:151](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L151)
+Defined in: [eigen-server/packages/rules/src/contract.ts:151](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L151)
Deterministic per-transition RNG. See [Rng](#rng-4).
@@ -218,7 +218,7 @@ Deterministic per-transition RNG. See [Rng](#rng-4).
state: TState;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:141](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L141)
+Defined in: [eigen-server/packages/rules/src/contract.ts:141](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L141)
##### type
@@ -226,7 +226,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:141](https://github.com
type: LifecycleType;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:148](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L148)
+Defined in: [eigen-server/packages/rules/src/contract.ts:148](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L148)
The trigger, always equal to `data.type`.
@@ -234,7 +234,7 @@ The trigger, always equal to `data.type`.
### BotActionArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:221](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L221)
+Defined in: [eigen-server/packages/rules/src/contract.ts:221](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L221)
A seated engine bot's turn to move, passed to the matching entry in
[GameRules.botActions](#botactions). The brain runs inside the game's Durable
@@ -266,7 +266,7 @@ pure (replay uses the recorded action, never re-runs the brain).
botConfig: JsonObject;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:223](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L223)
+Defined in: [eigen-server/packages/rules/src/contract.ts:223](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L223)
##### config
@@ -274,7 +274,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:223](https://github.com
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L113)
###### Inherited from
@@ -288,7 +288,7 @@ HookContext.config
observation: ObservationSlice;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:222](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L222)
+Defined in: [eigen-server/packages/rules/src/contract.ts:222](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L222)
##### playerIndex
@@ -296,7 +296,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:222](https://github.com
playerIndex: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:224](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L224)
+Defined in: [eigen-server/packages/rules/src/contract.ts:224](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L224)
##### rng
@@ -304,13 +304,13 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:224](https://github.com
rng: Rng;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:225](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L225)
+Defined in: [eigen-server/packages/rules/src/contract.ts:225](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L225)
***
### BotSeatableArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:206](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L206)
+Defined in: [eigen-server/packages/rules/src/contract.ts:206](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L206)
A candidate bot seating, passed to [GameRules.botSeatable](#botseatable).
`gameConfig` is parsed against the game's version schema; `botConfig` is the
@@ -331,7 +331,7 @@ schemas, so it stays opaque.
botConfig: JsonObject;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:208](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L208)
+Defined in: [eigen-server/packages/rules/src/contract.ts:208](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L208)
##### gameConfig
@@ -339,13 +339,13 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:208](https://github.com
gameConfig: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:207](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L207)
+Defined in: [eigen-server/packages/rules/src/contract.ts:207](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L207)
***
### ComputeObservationArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:170](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L170)
+Defined in: [eigen-server/packages/rules/src/contract.ts:170](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L170)
#### Extends
@@ -367,7 +367,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:170](https://github.com
cause: TransitionCause;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:182](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L182)
+Defined in: [eigen-server/packages/rules/src/contract.ts:182](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L182)
What produced `state`. See [TransitionCause](#transitioncause). Shared across the
per-seat fan-out; per-seat filtering of what it reveals is this hook's
@@ -379,7 +379,7 @@ job.
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L113)
###### Inherited from
@@ -393,7 +393,7 @@ HookContext.config
isReplay: boolean;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:185](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L185)
+Defined in: [eigen-server/packages/rules/src/contract.ts:185](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L185)
TRUE only when projecting a finished game for replay, where hidden-info games
may reveal opponent state.
@@ -404,7 +404,7 @@ may reveal opponent state.
participantCount: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:178](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L178)
+Defined in: [eigen-server/packages/rules/src/contract.ts:178](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L178)
##### pending
@@ -412,7 +412,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:178](https://github.com
pending: number[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:172](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L172)
+Defined in: [eigen-server/packages/rules/src/contract.ts:172](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L172)
##### playerIndex
@@ -420,7 +420,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:172](https://github.com
playerIndex: number | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:177](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L177)
+Defined in: [eigen-server/packages/rules/src/contract.ts:177](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L177)
The seat this projection is for, or `null` for a viewer (a non-participant
replaying a public game). A viewer projection only ever occurs with
@@ -433,13 +433,13 @@ full post-game view for it.
state: TState;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:171](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L171)
+Defined in: [eigen-server/packages/rules/src/contract.ts:171](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L171)
***
### Envelope
-Defined in: [eigen-server/packages/rules/src/contract.ts:81](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L81)
+Defined in: [eigen-server/packages/rules/src/contract.ts:81](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L81)
The result of advancing the game by one transition: the return of
`initialState`, `applyAction`, and `applyLifecycle`.
@@ -458,7 +458,7 @@ The result of advancing the game by one transition: the return of
optional outcome?: OutcomeEntry[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:89](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L89)
+Defined in: [eigen-server/packages/rules/src/contract.ts:89](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L89)
Present **only** when the game ends. Absent/undefined means ongoing.
@@ -468,7 +468,7 @@ Present **only** when the game ends. Absent/undefined means ongoing.
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:87](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L87)
+Defined in: [eigen-server/packages/rules/src/contract.ts:87](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L87)
0-based seats that may act next. Empty ⇒ game over.
@@ -478,7 +478,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:87](https://github.com/
state: TState;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:85](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L85)
+Defined in: [eigen-server/packages/rules/src/contract.ts:85](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L85)
New pure game payload (board, deck, fog…). Never carries whose-turn or
winner info; those are engine-owned fields. Must match the game's
@@ -490,7 +490,7 @@ winner info; those are engine-owned fields. Must match the game's
optional turnSeconds?: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:92](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L92)
+Defined in: [eigen-server/packages/rules/src/contract.ts:92](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L92)
Optional per-action deadline override for *this action only* (does not
touch any player's bank). Omit to use the game's configured timing.
@@ -499,7 +499,7 @@ touch any player's bank). Omit to use the game's configured timing.
### GameModule
-Defined in: [eigen-server/packages/rules/src/contract.ts:348](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L348)
+Defined in: [eigen-server/packages/rules/src/contract.ts:348](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L348)
The complete game-specific surface: the same-named twin of the Dart
`GameModule` (whose extras are client-only creation/about UI). Implement
@@ -516,7 +516,7 @@ branches on version.
versions: Record;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:356](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L356)
+Defined in: [eigen-server/packages/rules/src/contract.ts:356](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L356)
The [GameRules](#gamerules) units keyed by `schemaVersion`: exactly the
versions this build ships. Sparse on purpose: game creation rejects a
@@ -530,7 +530,7 @@ each payload with the same entry's schemas before invoking its hooks.
### GameRules
-Defined in: [eigen-server/packages/rules/src/contract.ts:264](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L264)
+Defined in: [eigen-server/packages/rules/src/contract.ts:264](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L264)
Everything one `schemaVersion` of a game needs: the payload contracts plus
all six hooks, narrowly typed to that version's shapes.
@@ -560,7 +560,7 @@ change incompatibly, ship a new `GameRules` under the next version key
optional botActions?: Record>;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:319](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L319)
+Defined in: [eigen-server/packages/rules/src/contract.ts:319](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L319)
Optional: the in-DO bot brains, **keyed by bot username**. When a
seated `engine`-type bot's turn starts, the engine resolves its registry
@@ -580,7 +580,7 @@ rejected exactly like a human's, so a buggy brain fails that seat's turn
schemas: GameSchemas;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:266](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L266)
+Defined in: [eigen-server/packages/rules/src/contract.ts:266](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L266)
The payload contracts for this version.
@@ -592,7 +592,7 @@ The payload contracts for this version.
applyAction(args): Envelope;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:277](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L277)
+Defined in: [eigen-server/packages/rules/src/contract.ts:277](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L277)
Apply a player's move. The engine has already confirmed it is this
seat's turn at the expected version, so do not re-check turn order. Only
@@ -616,7 +616,7 @@ bug and surfaces as a server error.
applyLifecycle(args): Envelope;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:284](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L284)
+Defined in: [eigen-server/packages/rules/src/contract.ts:284](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L284)
Resolve a lifecycle action (`forfeit`/`timeout`) into an envelope.
Lifecycle actions operate on the game from outside its rules. They may
@@ -640,7 +640,7 @@ it cannot be "illegal"; it always resolves.
botSeatable(args): boolean;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:306](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L306)
+Defined in: [eigen-server/packages/rules/src/contract.ts:306](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L306)
Decide whether a bot's declared capabilities (`botConfig`) support a
game with `gameConfig`. The engine gates seating on this before
@@ -663,7 +663,7 @@ Return `true` to allow.
computeObservation(args): ObservationSlice;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:292](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L292)
+Defined in: [eigen-server/packages/rules/src/contract.ts:292](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L292)
Project the state into one seat's view, including what that seat may
see of the transition that produced it (`args.cause`), so the client can
@@ -688,7 +688,7 @@ the acting seat's projected view is unchanged (the same-view rule).
initialState(args): Envelope;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:270](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L270)
+Defined in: [eigen-server/packages/rules/src/contract.ts:270](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L270)
Starting envelope. Draw any setup randomness (deck shuffle, first
player…) from `args.rng`.
@@ -709,7 +709,7 @@ player…) from `args.rng`.
ratingPool(args): string | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:300](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L300)
+Defined in: [eigen-server/packages/rules/src/contract.ts:300](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L300)
Decide whether, and in which pool, a game with these settings is
rated. Return the pool name (e.g. `'rapid'`) or `null` for unrated. The
@@ -732,7 +732,7 @@ the Rated/Casual toggle and send the same value.
### GameSchemas
-Defined in: [eigen-server/packages/rules/src/contract.ts:241](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L241)
+Defined in: [eigen-server/packages/rules/src/contract.ts:241](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L241)
The declarative payload contracts for one `schemaVersion`: the Standard
Schemas the engine uses to parse (and validate) every game payload crossing
@@ -759,7 +759,7 @@ bug.
action: GamePayloadSchema;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:247](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L247)
+Defined in: [eigen-server/packages/rules/src/contract.ts:247](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L247)
A player move's `data`, as submitted by clients and bots.
@@ -769,7 +769,7 @@ A player move's `data`, as submitted by clients and bots.
config: GamePayloadSchema;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:249](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L249)
+Defined in: [eigen-server/packages/rules/src/contract.ts:249](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L249)
The per-instance creation config stored on the game.
@@ -779,7 +779,7 @@ The per-instance creation config stored on the game.
observation: GamePayloadSchema;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:245](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L245)
+Defined in: [eigen-server/packages/rules/src/contract.ts:245](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L245)
One participant's projected view, as returned by `computeObservation`.
@@ -789,7 +789,7 @@ One participant's projected view, as returned by `computeObservation`.
state: GamePayloadSchema;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:243](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L243)
+Defined in: [eigen-server/packages/rules/src/contract.ts:243](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L243)
The pure game payload stored per transition.
@@ -797,7 +797,7 @@ The pure game payload stored per transition.
### InitialStateArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:116](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L116)
+Defined in: [eigen-server/packages/rules/src/contract.ts:116](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L116)
#### Extends
@@ -817,7 +817,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:116](https://github.com
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L113)
###### Inherited from
@@ -831,7 +831,7 @@ HookContext.config
playerCount: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:119](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L119)
+Defined in: [eigen-server/packages/rules/src/contract.ts:119](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L119)
##### rng
@@ -839,7 +839,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:119](https://github.com
rng: Rng;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:118](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L118)
+Defined in: [eigen-server/packages/rules/src/contract.ts:118](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L118)
Deterministic RNG for this transition. See [Rng](#rng-4).
@@ -847,7 +847,7 @@ Deterministic RNG for this transition. See [Rng](#rng-4).
### JsonObject
-Defined in: [eigen-server/packages/rules/src/json.ts:23](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/json.ts#L23)
+Defined in: [eigen-server/packages/rules/src/json.ts:23](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/json.ts#L23)
A JSON object: the shape of `state`, `config`, `data`, and observation
slices, and the constraint every game payload type must satisfy. An
@@ -866,7 +866,7 @@ implicit index signature this constraint relies on.
### ObservationSlice
-Defined in: [eigen-server/packages/rules/src/contract.ts:96](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L96)
+Defined in: [eigen-server/packages/rules/src/contract.ts:96](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L96)
One participant's view of the state, produced by `computeObservation`.
@@ -884,7 +884,7 @@ One participant's view of the state, produced by `computeObservation`.
data: TObservation;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:98](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L98)
+Defined in: [eigen-server/packages/rules/src/contract.ts:98](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L98)
What this seat is permitted to see.
@@ -894,7 +894,7 @@ What this seat is permitted to see.
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:103](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L103)
+Defined in: [eigen-server/packages/rules/src/contract.ts:103](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L103)
Pending set as this seat sees it. May be narrowed from the true set for
hidden-info games (e.g. a Nope window, or a simultaneous-commit round
@@ -905,7 +905,7 @@ stay truthful about the seat *itself*, which the engine enforces.
### RatingPoolArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:192](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L192)
+Defined in: [eigen-server/packages/rules/src/contract.ts:192](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L192)
The chosen game settings, passed to [GameRules.ratingPool](#ratingpool) at
creation so the game can decide its rating pool (or that the game is
@@ -926,7 +926,7 @@ schema.
access: GameAccess;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:193](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L193)
+Defined in: [eigen-server/packages/rules/src/contract.ts:193](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L193)
##### budgetSeconds
@@ -934,7 +934,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:193](https://github.com
budgetSeconds: number | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:195](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L195)
+Defined in: [eigen-server/packages/rules/src/contract.ts:195](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L195)
##### config
@@ -942,7 +942,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:195](https://github.com
config: TConfig;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:199](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L199)
+Defined in: [eigen-server/packages/rules/src/contract.ts:199](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L199)
##### incrementSeconds
@@ -950,7 +950,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:199](https://github.com
incrementSeconds: number | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:196](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L196)
+Defined in: [eigen-server/packages/rules/src/contract.ts:196](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L196)
##### maxPlayers
@@ -958,7 +958,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:196](https://github.com
maxPlayers: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:198](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L198)
+Defined in: [eigen-server/packages/rules/src/contract.ts:198](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L198)
##### minPlayers
@@ -966,7 +966,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:198](https://github.com
minPlayers: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:197](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L197)
+Defined in: [eigen-server/packages/rules/src/contract.ts:197](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L197)
##### turnSeconds
@@ -974,13 +974,13 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:197](https://github.com
turnSeconds: number | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:194](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L194)
+Defined in: [eigen-server/packages/rules/src/contract.ts:194](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L194)
***
### Rng
-Defined in: [eigen-server/packages/rules/src/contract.ts:53](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L53)
+Defined in: [eigen-server/packages/rules/src/contract.ts:53](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L53)
Deterministic per-transition random source, derived by the engine from the
game's stored base seed and the state version the envelope commits as. Draw
@@ -997,7 +997,7 @@ in deterministic code order.
next(): number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:54](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L54)
+Defined in: [eigen-server/packages/rules/src/contract.ts:54](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L54)
###### Returns
@@ -1011,7 +1011,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:54](https://github.com/
type ActionKind = "game" | "lifecycle";
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:43](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L43)
+Defined in: [eigen-server/packages/rules/src/contract.ts:43](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L43)
Which species a logged action is. Everything that transitions state is an
*action*; the two species differ by contract: a `game` action is
@@ -1029,7 +1029,7 @@ the log structurally, never by payload shape.
type ActionType = "user" | "bot" | "system";
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:34](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L34)
+Defined in: [eigen-server/packages/rules/src/contract.ts:34](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L34)
Who performed a logged action.
@@ -1041,7 +1041,7 @@ Who performed a logged action.
type AnyGameRules = GameRules;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:338](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L338)
+Defined in: [eigen-server/packages/rules/src/contract.ts:338](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L338)
A [GameRules](#gamerules) unit with its payload types erased: the type of a rules
entry once it is stored in a [GameModule.versions](#versions) registry that holds
@@ -1065,7 +1065,7 @@ with no `as`-cast, because `any` disables the variance check at this seam.
type BotAction = (args) => TAction;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:230](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L230)
+Defined in: [eigen-server/packages/rules/src/contract.ts:230](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L230)
One engine bot's move function: the value type in
[GameRules.botActions](#botactions).
@@ -1096,7 +1096,7 @@ One engine bot's move function: the value type in
type GameAccess = "public" | "private" | "friends";
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:31](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L31)
+Defined in: [eigen-server/packages/rules/src/contract.ts:31](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L31)
Game visibility.
@@ -1108,7 +1108,7 @@ Game visibility.
type GamePayloadSchema = StandardSchemaV1 & StandardJSONSchemaV1;
```
-Defined in: [eigen-server/packages/rules/src/standard-json-schema.ts:8](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/standard-json-schema.ts#L8)
+Defined in: [eigen-server/packages/rules/src/standard-json-schema.ts:8](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/standard-json-schema.ts#L8)
One game payload declaration: runtime validation plus portable schema
emission from the same transform-free object. Input and output deliberately
@@ -1128,7 +1128,7 @@ share one type: what parses is what persists and what Dart generates.
type GameResult = "win" | "loss" | "draw" | "eliminated";
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:28](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L28)
+Defined in: [eigen-server/packages/rules/src/contract.ts:28](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L28)
Per-player result of a finished game.
@@ -1140,7 +1140,7 @@ Per-player result of a finished game.
type Json = string | number | boolean | null | JsonArray | JsonObject;
```
-Defined in: [eigen-server/packages/rules/src/json.ts:10](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/json.ts#L10)
+Defined in: [eigen-server/packages/rules/src/json.ts:10](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/json.ts#L10)
Any JSON value. `undefined` is allowed inside objects (treated as an
absent key, matching how schema libraries model optional fields); it never
@@ -1161,7 +1161,7 @@ type LifecycleAction =
};
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:138](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L138)
+Defined in: [eigen-server/packages/rules/src/contract.ts:138](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L138)
The engine-constructed payload of a lifecycle action, recorded verbatim in
the action log (with `kind = 'lifecycle'`). Engine-owned and
@@ -1179,7 +1179,7 @@ purge); `timeout` carries no seat, and the affected seats are
type LifecycleType = "timeout" | "forfeit" | "autoForfeit";
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:25](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L25)
+Defined in: [eigen-server/packages/rules/src/contract.ts:25](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L25)
The trigger of a lifecycle action, resolved by the game's `applyLifecycle`
hook. `forfeit` is a voluntary resign; `autoForfeit` the engine-driven
@@ -1203,7 +1203,7 @@ type OutcomeEntry = {
};
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:68](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L68)
+Defined in: [eigen-server/packages/rules/src/contract.ts:68](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L68)
One participant's result, recorded when the game ends. `placement`
(1 = best, ties share a value) feeds OpenSkill directly; `teamIndex`
@@ -1221,7 +1221,7 @@ implicit index signature that makes it assignable to `Json`.
placement: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:71](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L71)
+Defined in: [eigen-server/packages/rules/src/contract.ts:71](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L71)
##### playerIndex
@@ -1229,7 +1229,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:71](https://github.com/
playerIndex: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:69](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L69)
+Defined in: [eigen-server/packages/rules/src/contract.ts:69](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L69)
##### result
@@ -1237,7 +1237,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:69](https://github.com/
result: GameResult;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:70](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L70)
+Defined in: [eigen-server/packages/rules/src/contract.ts:70](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L70)
##### score?
@@ -1245,7 +1245,7 @@ Defined in: [eigen-server/packages/rules/src/contract.ts:70](https://github.com/
optional score?: number | null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:74](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L74)
+Defined in: [eigen-server/packages/rules/src/contract.ts:74](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L74)
Optional raw game score, for display or score-based variants.
@@ -1255,7 +1255,7 @@ Optional raw game score, for display or score-based variants.
teamIndex: number;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:72](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L72)
+Defined in: [eigen-server/packages/rules/src/contract.ts:72](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L72)
***
@@ -1275,7 +1275,7 @@ type TransitionCause =
| null;
```
-Defined in: [eigen-server/packages/rules/src/contract.ts:168](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/contract.ts#L168)
+Defined in: [eigen-server/packages/rules/src/contract.ts:168](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/contract.ts#L168)
The action that produced the state being projected: a `game` action
(`applyAction`), a `lifecycle` action (`applyLifecycle`), or `null` for
@@ -1304,7 +1304,7 @@ them as animation only when it has the frame's predecessor, and as static
function passthroughObservation(args): ObservationSlice;
```
-Defined in: [eigen-server/packages/rules/src/helpers.ts:24](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/rules/src/helpers.ts#L24)
+Defined in: [eigen-server/packages/rules/src/helpers.ts:24](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/rules/src/helpers.ts#L24)
Default `computeObservation` for perfect-information games: every seat sees
the full state and the true pending set. Ignores `args.cause`, since a
diff --git a/docs/reference/typescript/server-testing.md b/docs/reference/typescript/server-testing.md
index 276612e..d2010a5 100644
--- a/docs/reference/typescript/server-testing.md
+++ b/docs/reference/typescript/server-testing.md
@@ -31,7 +31,7 @@ production config: pass `testing` ONLY in test workers.
### TestTokenOptions
-Defined in: [eigen-server/packages/server/src/testing.ts:70](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L70)
+Defined in: [eigen-server/packages/server/src/testing.ts:70](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L70)
#### Properties
@@ -41,7 +41,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:70](https://github.com/
optional anonymous?: boolean;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:72](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L72)
+Defined in: [eigen-server/packages/server/src/testing.ts:72](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L72)
##### claims?
@@ -49,7 +49,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:72](https://github.com/
optional claims?: Record;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:77](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L77)
+Defined in: [eigen-server/packages/server/src/testing.ts:77](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L77)
Override any registered claim (e.g. an expired `exp`, a wrong `aud`).
@@ -59,7 +59,7 @@ Override any registered claim (e.g. an expired `exp`, a wrong `aud`).
optional email?: string;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:73](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L73)
+Defined in: [eigen-server/packages/server/src/testing.ts:73](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L73)
##### name?
@@ -67,7 +67,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:73](https://github.com/
optional name?: string;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:74](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L74)
+Defined in: [eigen-server/packages/server/src/testing.ts:74](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L74)
##### picture?
@@ -75,7 +75,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:74](https://github.com/
optional picture?: string;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:75](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L75)
+Defined in: [eigen-server/packages/server/src/testing.ts:75](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L75)
##### uid
@@ -83,7 +83,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:75](https://github.com/
uid: string;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:71](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L71)
+Defined in: [eigen-server/packages/server/src/testing.ts:71](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L71)
## Variables
@@ -93,7 +93,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:71](https://github.com/
const TEST_PROJECT_ID: "eigen-test" = "eigen-test";
```
-Defined in: [eigen-server/packages/server/src/testing.ts:36](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L36)
+Defined in: [eigen-server/packages/server/src/testing.ts:36](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L36)
***
@@ -103,7 +103,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:36](https://github.com/
const testFirebaseAdmin: FirebaseAdminEffects;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:60](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L60)
+Defined in: [eigen-server/packages/server/src/testing.ts:60](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L60)
No-op Firebase Admin effects for test workers and test Durable Objects.
@@ -115,7 +115,7 @@ No-op Firebase Admin effects for test workers and test Durable Objects.
function mintTestToken(opts): Promise;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:80](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L80)
+Defined in: [eigen-server/packages/server/src/testing.ts:80](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L80)
#### Parameters
@@ -135,7 +135,7 @@ Defined in: [eigen-server/packages/server/src/testing.ts:80](https://github.com/
function testBearer(opts): Promise>;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:99](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L99)
+Defined in: [eigen-server/packages/server/src/testing.ts:99](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L99)
Authorization header for a minted token.
@@ -157,7 +157,7 @@ Authorization header for a minted token.
function testVerifier(): TokenVerifier;
```
-Defined in: [eigen-server/packages/server/src/testing.ts:66](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/testing.ts#L66)
+Defined in: [eigen-server/packages/server/src/testing.ts:66](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/testing.ts#L66)
The verifier a test worker passes under `createEngine({ testing })`.
diff --git a/docs/reference/typescript/server.md b/docs/reference/typescript/server.md
index f3acf06..a81362b 100644
--- a/docs/reference/typescript/server.md
+++ b/docs/reference/typescript/server.md
@@ -13,7 +13,7 @@ drizzle tables would turn a private layout into a compatibility surface.
### AuthError
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:12](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L12)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:12](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L12)
Verification failure, always the caller's fault; the app maps it to 401.
@@ -76,7 +76,7 @@ Error.constructor
### `abstract` BaseGameDO
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:104](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L104)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:104](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L104)
Durable Object base class that owns one authoritative game session.
@@ -118,7 +118,7 @@ export class GameDO extends BaseGameDO {
new BaseGameDO(ctx, env): BaseGameDO;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:118](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L118)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:118](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L118)
###### Parameters
@@ -145,7 +145,7 @@ DurableObject.constructor
abstract protected readonly gameModule: GameModule;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:106](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L106)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:106](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L106)
The implementor's game: the `versions` map the engine dispatches on.
@@ -157,7 +157,7 @@ The implementor's game: the `versions` map the engine dispatches on.
abort(gameId): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:262](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L262)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:271](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L271)
Unconditional teardown (cron reap): mark the game aborted in D1 and
drop the DO's storage: no creator gate, no init requirement. A
@@ -187,7 +187,7 @@ GameStub.abort
alarm(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:708](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L708)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:729](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L729)
###### Returns
@@ -199,7 +199,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:708](https://github.
abstract protected d1(env): D1Database;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:109](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L109)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:109](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L109)
The EngineConfig seam: the engine never assumes binding names, so the
subclass picks the D1 database off its own Env.
@@ -220,14 +220,14 @@ subclass picks the D1 database off its own Env.
fetch(request): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:732](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L732)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:753](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L753)
The worker routes the upgrade here after authenticating; the principal
header is worker-set (never client-supplied; the worker strips inbound
-headers when forwarding). One socket serves the game's whole lifetime:
-unversioned roster snapshots pre-game, versioned frames from v0.
-A not-yet-seated user's socket simply receives no frames until the
-roster contains them.
+headers when forwarding). One socket serves the game's whole lifetime and
+carries one message kind, the per-seat [SessionSnapshot](#sessionsnapshot). A
+not-yet-seated user's socket receives the envelope with no frame until the
+roster contains them, which is how it learns the game started at all.
###### Parameters
@@ -251,7 +251,7 @@ GameStub.fetch
protected firebaseAdmin(env): FirebaseAdminEffects;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:112](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L112)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:112](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L112)
Required Firebase Admin effects. Tests override this with the explicit
fake exported by `@eigeninteractive/server/testing`.
@@ -272,7 +272,7 @@ fake exported by `@eigeninteractive/server/testing`.
frames(args): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:832](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L832)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:932](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L932)
Project a version range for one seat (null = public viewer, replay
only). Live rows serve the stored frame; compacted/ratings rows
@@ -304,7 +304,7 @@ GameStub.frames
handle(cmd): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:131](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L131)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:131](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L131)
###### Parameters
@@ -328,7 +328,7 @@ GameStub.handle
repokeFinish(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:696](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L696)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:717](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L717)
The gated admin re-poke (step 4): re-runs the D1 apply for a
finish whose effects never landed. Idempotent end to end: finish_id
@@ -345,13 +345,40 @@ hasn't been committed. Returns false when there is nothing to do.
GameStub.repokeFinish
```
+##### session()
+
+```ts
+session(gameId, userId): Promise;
+```
+
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:776](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L776)
+
+The snapshot over RPC, for the HTTP paths that have no socket.
+
+###### Parameters
+
+| Parameter | Type |
+| ------ | ------ |
+| `gameId` | `string` |
+| `userId` | `string` \| `null` |
+
+###### Returns
+
+`Promise`\<[`SessionSnapshot`](#sessionsnapshot) \| `null`\>
+
+###### Implementation of
+
+```ts
+GameStub.session
+```
+
##### webSocketClose()
```ts
webSocketClose(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:766](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L766)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:786](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L786)
###### Returns
@@ -363,7 +390,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:766](https://github.
webSocketError(_ws, error): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:772](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L772)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:792](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L792)
###### Parameters
@@ -382,7 +409,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:772](https://github.
webSocketMessage(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:761](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/do/game-do.ts#L761)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:781](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/do/game-do.ts#L781)
###### Returns
@@ -392,7 +419,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:761](https://github.
### HttpError
-Defined in: [eigen-server/packages/server/src/http.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/http.ts#L38)
+Defined in: [eigen-server/packages/server/src/http.ts:38](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/http.ts#L38)
#### Extends
@@ -410,7 +437,7 @@ new HttpError(
retryAfterSeconds?): HttpError;
```
-Defined in: [eigen-server/packages/server/src/http.ts:46](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/http.ts#L46)
+Defined in: [eigen-server/packages/server/src/http.ts:46](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/http.ts#L46)
###### Parameters
@@ -439,7 +466,7 @@ Error.constructor
readonly code: ErrorCode | undefined;
```
-Defined in: [eigen-server/packages/server/src/http.ts:40](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/http.ts#L40)
+Defined in: [eigen-server/packages/server/src/http.ts:40](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/http.ts#L40)
##### retryAfterSeconds
@@ -447,7 +474,7 @@ Defined in: [eigen-server/packages/server/src/http.ts:40](https://github.com/eig
readonly retryAfterSeconds: number | undefined;
```
-Defined in: [eigen-server/packages/server/src/http.ts:44](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/http.ts#L44)
+Defined in: [eigen-server/packages/server/src/http.ts:44](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/http.ts#L44)
Seconds the caller should wait before retrying, rendered as the
`Retry-After` header. Set only on a 429 (see `ErrorCode.rateLimited`);
@@ -459,13 +486,13 @@ Seconds the caller should wait before retrying, rendered as the
readonly status: 400 | 401 | 403 | 404 | 409 | 413 | 415 | 422 | 429 | 500 | 502;
```
-Defined in: [eigen-server/packages/server/src/http.ts:39](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/http.ts#L39)
+Defined in: [eigen-server/packages/server/src/http.ts:39](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/http.ts#L39)
## Interfaces
### AuthClaims
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:18](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L18)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:18](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L18)
What a verified ID token asserts. `isAnonymous` (the
`firebase.sign_in_provider === 'anonymous'` claim) drives every guest gate;
@@ -480,7 +507,7 @@ Apple usually only email, guests none).
email: string | null;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:21](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L21)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:21](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L21)
##### isAnonymous
@@ -488,7 +515,7 @@ Defined in: [eigen-server/packages/server/src/auth/firebase.ts:21](https://githu
isAnonymous: boolean;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:20](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L20)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:20](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L20)
##### name
@@ -496,7 +523,7 @@ Defined in: [eigen-server/packages/server/src/auth/firebase.ts:20](https://githu
name: string | null;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:22](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L22)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:22](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L22)
##### picture
@@ -504,7 +531,7 @@ Defined in: [eigen-server/packages/server/src/auth/firebase.ts:22](https://githu
picture: string | null;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:23](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L23)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:23](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L23)
##### uid
@@ -512,13 +539,13 @@ Defined in: [eigen-server/packages/server/src/auth/firebase.ts:23](https://githu
uid: string;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:19](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L19)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:19](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L19)
***
### CreateGameInput
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:292](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L292)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:292](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L292)
The worker-direct create, engine-owned so implementors never touch
the D1 schema: seats already validated by worker policy.
@@ -531,7 +558,7 @@ the D1 schema: seats already validated by worker policy.
access: GameAccess;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:296](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L296)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:296](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L296)
##### budgetSeconds
@@ -539,7 +566,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:296](https://github.co
budgetSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:300](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L300)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:300](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L300)
##### config
@@ -547,7 +574,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:300](https://github.co
config: JsonObject;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:298](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L298)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:298](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L298)
##### createdBy
@@ -555,7 +582,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:298](https://github.co
createdBy: string | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:294](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L294)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:294](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L294)
##### gameId
@@ -563,7 +590,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:294](https://github.co
gameId: string;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:293](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L293)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:293](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L293)
##### incrementSeconds
@@ -571,7 +598,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:293](https://github.co
incrementSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:301](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L301)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:301](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L301)
##### maxPlayers
@@ -579,7 +606,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:301](https://github.co
maxPlayers: number;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:305](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L305)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:305](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L305)
##### minPlayers
@@ -587,7 +614,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:305](https://github.co
minPlayers: number;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:304](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L304)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:304](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L304)
##### now
@@ -595,7 +622,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:304](https://github.co
now: number;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:308](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L308)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:308](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L308)
##### rated
@@ -603,7 +630,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:308](https://github.co
rated: boolean;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:302](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L302)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:302](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L302)
##### ratingPool
@@ -611,7 +638,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:302](https://github.co
ratingPool: string | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:303](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L303)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:303](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L303)
##### schemaVersion
@@ -619,7 +646,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:303](https://github.co
schemaVersion: number;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:297](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L297)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:297](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L297)
##### seats
@@ -627,7 +654,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:297](https://github.co
seats: Seat[];
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:307](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L307)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:307](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L307)
##### shortCode
@@ -635,7 +662,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:307](https://github.co
shortCode: string;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:306](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L306)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:306](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L306)
##### status
@@ -643,7 +670,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:306](https://github.co
status: "waiting" | "ready";
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:295](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L295)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:295](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L295)
##### turnSeconds
@@ -651,13 +678,13 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:295](https://github.co
turnSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:299](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L299)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:299](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L299)
***
### EngineConfig
-Defined in: [eigen-server/packages/server/src/engine.ts:99](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L99)
+Defined in: [eigen-server/packages/server/src/engine.ts:99](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L99)
The EngineConfig seam: the engine never assumes binding names, so the
implementor picks bindings off their own Env. Annotate the accessors' `env`
@@ -678,7 +705,7 @@ parameter and both type arguments infer.
appName: string;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:106](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L106)
+Defined in: [eigen-server/packages/server/src/engine.ts:106](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L106)
The whitelabel app's display name, the single source of truth for the
engine's own identity (share metadata and public-page titles today;
@@ -692,7 +719,7 @@ feature blocks are enabled.
optional avatars?: AvatarsConfig;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:128](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L128)
+Defined in: [eigen-server/packages/server/src/engine.ts:128](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L128)
Opt-in avatar uploads. Omit → not mounted.
@@ -702,7 +729,7 @@ Opt-in avatar uploads. Omit → not mounted.
optional clientOrigins?: readonly string[] | ((env) => readonly string[]);
```
-Defined in: [eigen-server/packages/server/src/engine.ts:124](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L124)
+Defined in: [eigen-server/packages/server/src/engine.ts:124](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L124)
Browser origins allowed to call the engine from a different origin.
@@ -721,7 +748,7 @@ Set an empty list to disable the `WEB_APP_ORIGIN` default.
optional deepLink?: DeepLinkConfig;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:126](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L126)
+Defined in: [eigen-server/packages/server/src/engine.ts:126](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L126)
Native deep-link verification and store links. Omit for web-only.
@@ -731,7 +758,7 @@ Native deep-link verification and store links. Omit for web-only.
gameModule: GameModule;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:100](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L100)
+Defined in: [eigen-server/packages/server/src/engine.ts:100](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L100)
##### lifecycle?
@@ -739,7 +766,7 @@ Defined in: [eigen-server/packages/server/src/engine.ts:100](https://github.com/
optional lifecycle?: LifecycleOptions;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:135](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L135)
+Defined in: [eigen-server/packages/server/src/engine.ts:135](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L135)
Cron-backstop tuning: guest-purge/reap windows and batch caps.
Omit for the defaults (`LIFECYCLE_DEFAULTS`); set any subset to
@@ -751,7 +778,7 @@ override just those.
optional site?: SiteConfig;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:131](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L131)
+Defined in: [eigen-server/packages/server/src/engine.ts:131](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L131)
The public web surface: download page, legal documents, crawler files.
Omit → not mounted (the worker is API-only).
@@ -765,7 +792,7 @@ optional testing?: {
};
```
-Defined in: [eigen-server/packages/server/src/engine.ts:140](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L140)
+Defined in: [eigen-server/packages/server/src/engine.ts:140](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L140)
Explicit test-only replacements for Firebase verification and Admin
effects. Supplying them together prevents a fake verifier from
@@ -802,7 +829,7 @@ firebaseAdmin(env): FirebaseAdminEffects;
d1(env): D1Database;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:108](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L108)
+Defined in: [eigen-server/packages/server/src/engine.ts:108](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L108)
The engine's D1 database (engine-private).
@@ -822,7 +849,7 @@ The engine's D1 database (engine-private).
optional firebaseProjectId(env): string;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L113)
+Defined in: [eigen-server/packages/server/src/engine.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L113)
Firebase project id for token verification; defaults to the
`FIREBASE_PROJECT_ID` var (the only secret verification needs).
@@ -843,7 +870,7 @@ Firebase project id for token verification; defaults to the
gameDO(env): DurableObjectNamespace;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:110](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L110)
+Defined in: [eigen-server/packages/server/src/engine.ts:110](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L110)
The GameDO namespace binding.
@@ -861,7 +888,7 @@ The GameDO namespace binding.
### FinishApplyInput
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:30](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L30)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:30](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L30)
#### Properties
@@ -871,7 +898,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:30](https://github.com
finishId: string;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:34](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L34)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:34](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L34)
The DO-minted idempotency key. The apply is a no-op replay when
the games row already carries it.
@@ -882,7 +909,7 @@ the games row already carries it.
gameId: string;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:31](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L31)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:31](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L31)
##### now
@@ -890,7 +917,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:31](https://github.com
now: number;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:39](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L39)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:39](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L39)
##### outcomes
@@ -898,7 +925,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:39](https://github.com
outcomes: OutcomeEntry[];
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:35](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L35)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:35](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L35)
##### rated
@@ -906,7 +933,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:35](https://github.com
rated: boolean;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:37](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L37)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:37](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L37)
##### ratingPool
@@ -914,7 +941,7 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:37](https://github.com
ratingPool: string | null;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L38)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:38](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L38)
##### roster
@@ -922,13 +949,13 @@ Defined in: [eigen-server/packages/server/src/d1/apply.ts:38](https://github.com
roster: Seat[];
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:36](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L36)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:36](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L36)
***
### FirebaseAdminEffects
-Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:15](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/firebase/admin-effects.ts#L15)
+Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:15](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/firebase/admin-effects.ts#L15)
The Firebase Admin effects used by authenticated engine paths.
@@ -940,7 +967,7 @@ The Firebase Admin effects used by authenticated engine paths.
deleteAccount(userId): Promise;
```
-Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:19](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/firebase/admin-effects.ts#L19)
+Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:19](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/firebase/admin-effects.ts#L19)
Permanently delete one Firebase Authentication account.
@@ -963,7 +990,7 @@ notifyUser(
message): Promise;
```
-Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:17](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/firebase/admin-effects.ts#L17)
+Defined in: [eigen-server/packages/server/src/firebase/admin-effects.ts:17](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/firebase/admin-effects.ts#L17)
Send one notification through the engine's registered-device store.
@@ -983,7 +1010,7 @@ Send one notification through the engine's registered-device store.
### FrameMessage
-Defined in: [eigen-server/packages/server/src/protocol.ts:91](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L91)
+Defined in: [eigen-server/packages/server/src/protocol.ts:137](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L137)
One seat's versioned frame on the wire: the socket fan-out payload, and
(for the acting seat) the command-response ride-along. `ratings` appears
@@ -997,7 +1024,7 @@ only on the post-finish ratings transition.
data: JsonObject;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:94](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L94)
+Defined in: [eigen-server/packages/server/src/protocol.ts:140](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L140)
##### deadline
@@ -1005,7 +1032,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:94](https://github.com
deadline: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:97](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L97)
+Defined in: [eigen-server/packages/server/src/protocol.ts:143](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L143)
The true client-facing deadline (grace is display-only there).
@@ -1015,7 +1042,7 @@ The true client-facing deadline (grace is display-only there).
optional outcomes?: OutcomeEntry[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L99)
+Defined in: [eigen-server/packages/server/src/protocol.ts:145](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L145)
##### pendingPlayers
@@ -1023,7 +1050,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:95](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L95)
+Defined in: [eigen-server/packages/server/src/protocol.ts:141](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L141)
##### playerTimes
@@ -1031,7 +1058,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:95](https://github.com
playerTimes: number[] | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:98](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L98)
+Defined in: [eigen-server/packages/server/src/protocol.ts:144](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L144)
##### ratings?
@@ -1039,7 +1066,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:98](https://github.com
optional ratings?: RatingDelta[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:100](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L100)
+Defined in: [eigen-server/packages/server/src/protocol.ts:146](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L146)
##### type
@@ -1047,7 +1074,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:100](https://github.co
type: "frame";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:92](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L92)
+Defined in: [eigen-server/packages/server/src/protocol.ts:138](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L138)
##### version
@@ -1055,13 +1082,13 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:92](https://github.com
version: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:93](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L93)
+Defined in: [eigen-server/packages/server/src/protocol.ts:139](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L139)
***
### LegalConfig
-Defined in: [eigen-server/packages/server/src/site/config.ts:29](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L29)
+Defined in: [eigen-server/packages/server/src/site/config.ts:29](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L29)
Legal document overrides. Each is an HTML **fragment**: body content only,
no document wrapper; the engine supplies the shell, styling and footer.
@@ -1080,7 +1107,7 @@ what a template's tokens used to stand in for.
optional deleteAccount?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:32](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L32)
+Defined in: [eigen-server/packages/server/src/site/config.ts:32](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L32)
##### privacy?
@@ -1088,7 +1115,7 @@ Defined in: [eigen-server/packages/server/src/site/config.ts:32](https://github.
optional privacy?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:31](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L31)
+Defined in: [eigen-server/packages/server/src/site/config.ts:31](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L31)
##### terms?
@@ -1096,13 +1123,13 @@ Defined in: [eigen-server/packages/server/src/site/config.ts:31](https://github.
optional terms?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:30](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L30)
+Defined in: [eigen-server/packages/server/src/site/config.ts:30](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L30)
***
### OperatorConfig
-Defined in: [eigen-server/packages/server/src/site/config.ts:9](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L9)
+Defined in: [eigen-server/packages/server/src/site/config.ts:9](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L9)
The legal entity publishing the game. Required whenever `site` is present:
the default legal documents take it as a prop and cannot render without it.
@@ -1115,7 +1142,7 @@ the default legal documents take it as a prop and cannot render without it.
contactEmail: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:15](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L15)
+Defined in: [eigen-server/packages/server/src/site/config.ts:15](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L15)
Support and privacy contact address.
@@ -1125,7 +1152,7 @@ Support and privacy contact address.
effectiveDate: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:18](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L18)
+Defined in: [eigen-server/packages/server/src/site/config.ts:18](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L18)
Effective date of the legal documents, as displayed. A plain string, not a
Date, since it is prose and its format is the operator's choice.
@@ -1136,7 +1163,7 @@ Date, since it is prose and its format is the operator's choice.
jurisdiction: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:13](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L13)
+Defined in: [eigen-server/packages/server/src/site/config.ts:13](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L13)
Governing jurisdiction, e.g. `India`.
@@ -1146,7 +1173,7 @@ Governing jurisdiction, e.g. `India`.
name: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:11](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L11)
+Defined in: [eigen-server/packages/server/src/site/config.ts:11](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L11)
Legal entity name. Also the page footers' copyright holder.
@@ -1154,7 +1181,7 @@ Legal entity name. Also the page footers' copyright holder.
### Principal
-Defined in: [eigen-server/packages/server/src/protocol.ts:16](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L16)
+Defined in: [eigen-server/packages/server/src/protocol.ts:16](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L16)
Who a command acts as, resolved at the edge. Exactly one id is set.
@@ -1166,7 +1193,7 @@ Who a command acts as, resolved at the edge. Exactly one id is set.
botId: string | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:18](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L18)
+Defined in: [eigen-server/packages/server/src/protocol.ts:18](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L18)
##### userId
@@ -1174,7 +1201,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:18](https://github.com
userId: string | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:17](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L17)
+Defined in: [eigen-server/packages/server/src/protocol.ts:17](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L17)
***
@@ -1264,7 +1291,7 @@ Defined in: eigen-server/packages/kernel/dist/index.d.ts:175
### RetryOptions
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:59](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L59)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:59](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L59)
#### Properties
@@ -1274,7 +1301,7 @@ Defined in: [eigen-server/packages/server/src/d1/retry.ts:59](https://github.com
optional attempts?: number;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:61](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L61)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:61](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L61)
Total attempts including the first. Default 4.
@@ -1284,7 +1311,7 @@ Total attempts including the first. Default 4.
optional baseDelayMs?: number;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:63](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L63)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:63](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L63)
First backoff, doubling each retry. Default 50ms.
@@ -1294,7 +1321,7 @@ First backoff, doubling each retry. Default 50ms.
optional maxDelayMs?: number;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:65](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L65)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:65](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L65)
Backoff ceiling. Default 2000ms.
@@ -1304,7 +1331,7 @@ Backoff ceiling. Default 2000ms.
optional onRetry?: (error, attempt) => void;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:69](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L69)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:69](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L69)
Observe each retry (logging); never throws into the loop.
@@ -1325,7 +1352,7 @@ Observe each retry (logging); never throws into the loop.
optional shouldRetry?: (error) => boolean;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:67](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L67)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:67](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L67)
Which failures are worth retrying. Default [isTransientD1Error](#istransientd1error).
@@ -1345,7 +1372,7 @@ Which failures are worth retrying. Default [isTransientD1Error](#istransientd1er
optional sleep?: (ms) => Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:71](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L71)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:71](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L71)
Delay primitive, injectable so tests run without real timers.
@@ -1361,23 +1388,162 @@ Delay primitive, injectable so tests run without real timers.
***
-### RosterSnapshot
+### SessionSnapshot
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:98](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L98)
+
+The complete live truth about one game, as ONE SEAT sees it: the only message
+the socket carries, and the body of every accepted command.
+
+Sent on socket open whatever the status, and after every committed change,
+lobby or state. Self-describing and idempotent: a client that applies the
+newest one it has seen is correct, having missed any number of earlier ones,
+so there is no state for it to reconstruct and no channel for it to correlate
+against another.
-Defined in: [eigen-server/packages/server/src/protocol.ts:82](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L82)
+It carries the immutable header as well as the moving parts because a game
+screen must not need a second source. That is what the old split cost: status
+lived only in a D1 read nothing re-issued, so a client could observe a frame
+without the status it belonged to, and never learned a game had started.
-The unversioned pre-game snapshot: pushed to every socket on any
-roster change, idempotent, so a reconnect just gets the current one. Also the
-response body of an accepted waiting-room command.
+Hidden information is safe by construction: the envelope is projected per seat
+before it is sent, and `frame` is only ever the receiving principal's own
+seat's view.
#### Properties
+##### access
+
+```ts
+access: GameAccess;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:111](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L111)
+
+##### budgetSeconds
+
+```ts
+budgetSeconds: number | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:115](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L115)
+
+##### config
+
+```ts
+config: JsonObject;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L113)
+
+##### createdBy
+
+```ts
+createdBy: string | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:121](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L121)
+
+##### frame
+
+```ts
+frame: FrameMessage | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:131](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L131)
+
+The receiving seat's observation at `version`. Null in the lobby, and null
+for a principal holding no seat, which is how an unseated client still
+learns that the game started.
+
+##### gameId
+
+```ts
+gameId: string;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:109](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L109)
+
+Fixed at creation; carried so this is sufficient on its own.
+
+##### incrementSeconds
+
+```ts
+incrementSeconds: number | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:116](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L116)
+
+##### maxPlayers
+
+```ts
+maxPlayers: number;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:120](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L120)
+
+##### minPlayers
+
+```ts
+minPlayers: number;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:119](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L119)
+
##### players
```ts
players: Seat[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:85](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L85)
+Defined in: [eigen-server/packages/server/src/protocol.ts:125](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L125)
+
+##### rated
+
+```ts
+rated: boolean;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:117](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L117)
+
+##### ratingPool
+
+```ts
+ratingPool: string | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:118](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L118)
+
+##### schemaVersion
+
+```ts
+schemaVersion: number;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:112](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L112)
+
+##### seq
+
+```ts
+seq: number;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:106](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L106)
+
+Monotonic per game, incremented by every commit. Totally orders snapshots
+across every path they arrive by, which `version` cannot do because a lobby
+change has none. Apply a snapshot when `seq` exceeds the held one, OR when
+it reports a terminal status the held state does not: `finished` and
+`aborted` are absorbing, so they need no ordering, and the abort teardown
+drops the storage `seq` lived in.
+
+##### shortCode
+
+```ts
+shortCode: string;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:110](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L110)
##### status
@@ -1385,21 +1551,41 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:85](https://github.com
status: GameStatus;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:84](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L84)
+Defined in: [eigen-server/packages/server/src/protocol.ts:124](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L124)
+
+What moves.
+
+##### turnSeconds
+
+```ts
+turnSeconds: number | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:114](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L114)
##### type
```ts
-type: "roster";
+type: "session";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:83](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L83)
+Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L99)
+
+##### version
+
+```ts
+version: number | null;
+```
+
+Defined in: [eigen-server/packages/server/src/protocol.ts:127](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L127)
+
+The newest committed version, or null while the game is in the lobby.
***
### SiteConfig
-Defined in: [eigen-server/packages/server/src/site/config.ts:53](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L53)
+Defined in: [eigen-server/packages/server/src/site/config.ts:53](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L53)
The public web surface a deployed game serves on its own host: download page,
legal documents, and the crawler files. Absent → none of it is mounted and
@@ -1416,7 +1602,7 @@ The scaffold reserves these paths for the Worker with Static Assets'
optional description?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:59](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L59)
+Defined in: [eigen-server/packages/server/src/site/config.ts:59](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L59)
Longer download-page prose. Defaults to `tagline`.
@@ -1426,7 +1612,7 @@ Longer download-page prose. Defaults to `tagline`.
optional legal?: LegalConfig;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:73](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L73)
+Defined in: [eigen-server/packages/server/src/site/config.ts:73](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L73)
##### madeByCredit?
@@ -1434,7 +1620,7 @@ Defined in: [eigen-server/packages/server/src/site/config.ts:73](https://github.
optional madeByCredit?: string | null;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:71](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L71)
+Defined in: [eigen-server/packages/server/src/site/config.ts:71](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L71)
Footer credit line. Defaults to [DEFAULT\_CREDIT](#default_credit); `null` removes it.
@@ -1444,7 +1630,7 @@ Footer credit line. Defaults to [DEFAULT\_CREDIT](#default_credit); `null` remov
optional name?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:55](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L55)
+Defined in: [eigen-server/packages/server/src/site/config.ts:55](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L55)
Public game name in titles and OG tags. Defaults to `appName`.
@@ -1454,7 +1640,7 @@ Public game name in titles and OG tags. Defaults to `appName`.
optional ogImage?: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:69](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L69)
+Defined in: [eigen-server/packages/server/src/site/config.ts:69](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L69)
Path under `public/` to the 1200x630 OG image. Defaults to
`/og-image.png`, the name the
@@ -1468,7 +1654,7 @@ surfaces. The engine never generates images.
operator: OperatorConfig;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:72](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L72)
+Defined in: [eigen-server/packages/server/src/site/config.ts:72](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L72)
##### primaryColor
@@ -1476,7 +1662,7 @@ Defined in: [eigen-server/packages/server/src/site/config.ts:72](https://github.
primaryColor: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:61](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L61)
+Defined in: [eigen-server/packages/server/src/site/config.ts:61](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L61)
Hex accent colour, e.g. `#1a237e`. Also the `theme-color`.
@@ -1486,7 +1672,7 @@ Hex accent colour, e.g. `#1a237e`. Also the `theme-color`.
optional screenshots?: string[];
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:63](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L63)
+Defined in: [eigen-server/packages/server/src/site/config.ts:63](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L63)
Filenames under `public/screenshots/`, shown as a scrolling strip.
@@ -1496,7 +1682,7 @@ Filenames under `public/screenshots/`, shown as a scrolling strip.
tagline: string;
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:57](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L57)
+Defined in: [eigen-server/packages/server/src/site/config.ts:57](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L57)
One-sentence hook. The meta description and OG description.
@@ -1504,7 +1690,7 @@ One-sentence hook. The meta description and OG description.
### TokenVerifier
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:29](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L29)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:29](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L29)
The seam `createEngine` consumes. Production is
[createFirebaseVerifier](#createfirebaseverifier) with the default remote JWKS; tests inject a
@@ -1518,7 +1704,7 @@ local JWKS and mint their own RS256 tokens.
verify(token): Promise;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:31](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L31)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:31](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L31)
Resolve a bearer token to claims, or throw [AuthError](#autherror).
@@ -1582,7 +1768,7 @@ type Command =
};
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:23](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L23)
+Defined in: [eigen-server/packages/server/src/protocol.ts:23](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L23)
Everything that crosses the worker → DO boundary after creation (
create itself is a worker-direct D1 write; the DO does not exist yet).
@@ -1771,13 +1957,8 @@ type: LifecycleType;
```ts
type CommandResult =
| {
- frame: FrameMessage | null;
ok: true;
- version: number;
-}
- | {
- ok: true;
- roster: RosterSnapshot;
+ session: SessionSnapshot;
}
| {
code: | RejectCode
@@ -1787,13 +1968,17 @@ type CommandResult =
};
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:124](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L124)
+Defined in: [eigen-server/packages/server/src/protocol.ts:158](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L158)
+
+What `GameDO.handle()` returns: one accepted shape for every command kind,
+the caller's own post-commit [SessionSnapshot](#sessionsnapshot), so a lobby command and a
+move answer with the same value and the client feeds both into one path.
-What `GameDO.handle()` returns; accepted results are stored for commandId
-dedupe and replayed verbatim to a retry. Rejections are computed
-fresh each time, since re-evaluating one is always sound. State-transitioning
-commands answer with a version (+ the acting seat's frame); waiting-room
-commands answer with the post-commit roster snapshot.
+Accepted results are stored for commandId dedupe and replayed verbatim to a
+retry, which means a retry receives the snapshot as it was at first execution.
+That is harmless rather than stale: `seq` orders it against whatever the
+client now holds, so an older one is simply discarded. Rejections are computed
+fresh each time, since re-evaluating one is always sound.
***
@@ -1810,7 +1995,7 @@ type LobbyRejectCode =
| "creatorCannotLeave";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:62](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/protocol.ts#L62)
+Defined in: [eigen-server/packages/server/src/protocol.ts:62](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/protocol.ts#L62)
Why the DO refused a waiting-room command: the integrity column.
These are *expected* refusals (accepted lobby staleness: the lobby may show
@@ -1826,7 +2011,7 @@ rejections; the worker maps them to HTTP. Genuine protocol violations
type UserRow = typeof users.$inferSelect;
```
-Defined in: [eigen-server/packages/server/src/auth/provision.ts:19](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/provision.ts#L19)
+Defined in: [eigen-server/packages/server/src/auth/provision.ts:19](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/provision.ts#L19)
## Variables
@@ -1851,7 +2036,7 @@ windows. The client's display-only `kServerDeadlineGrace` mirrors this.
const DEFAULT_CREDIT: "Built with EigenInteractive" = "Built with EigenInteractive";
```
-Defined in: [eigen-server/packages/server/src/site/config.ts:41](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/site/config.ts#L41)
+Defined in: [eigen-server/packages/server/src/site/config.ts:41](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/site/config.ts#L41)
The credit line in every page footer. Set `site.madeByCredit` to your own
string, or to `null` to drop it.
@@ -1868,7 +2053,7 @@ renders as plain text rather than pointing somewhere it never mentioned.
function applyFinish(d1, input): Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L48)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:48](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L48)
Apply one finished game to D1. Returns the rated deltas (null for an
unrated game) for the DO to deliver as the ratings transition. Throws on
@@ -1894,7 +2079,7 @@ the call site; the internal loop only absorbs CAS conflicts).
function createEngine(cfg): ExportedHandler;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:418](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L418)
+Defined in: [eigen-server/packages/server/src/engine.ts:418](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L418)
Creates the complete Cloudflare Worker for one game deployment.
@@ -1941,7 +2126,7 @@ export default createEngine({
function createFirebaseVerifier(projectId, getKey?): TokenVerifier;
```
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:46](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/firebase.ts#L46)
+Defined in: [eigen-server/packages/server/src/auth/firebase.ts:46](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/firebase.ts#L46)
#### Parameters
@@ -1962,7 +2147,7 @@ Defined in: [eigen-server/packages/server/src/auth/firebase.ts:46](https://githu
function createGame(d1, input): Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:314](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L314)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:314](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L314)
Write the games row + one participants row per seat, atomically. The DO
lazy-inits from exactly these rows on first contact. Callers own the
@@ -1987,7 +2172,7 @@ shortCode retry: a duplicate trips the UNIQUE index and throws.
function deriveBotKey(masterSecret, botId): Promise;
```
-Defined in: [eigen-server/packages/server/src/bot/bot-auth.ts:60](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/bot/bot-auth.ts#L60)
+Defined in: [eigen-server/packages/server/src/bot/bot-auth.ts:60](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/bot/bot-auth.ts#L60)
The per-bot signing key as base64, **the operator utility**. This is the
one value an external bot's owner is given, and the only one they need: it
@@ -2061,7 +2246,7 @@ function ensureUser(
}>;
```
-Defined in: [eigen-server/packages/server/src/auth/provision.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/auth/provision.ts#L51)
+Defined in: [eigen-server/packages/server/src/auth/provision.ts:51](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/auth/provision.ts#L51)
Load the caller's row, creating or backfilling it as the token demands.
One read on the hot path; writes only on first sight and on guest →
@@ -2096,7 +2281,7 @@ permanent conversion.
function isTransientD1Error(error): boolean;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:55](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L55)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:55](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L55)
True for the D1 failures worth retrying: a network blip, a storage or
Durable-Object reset, a code-update restart, or a transient routing failure.
@@ -2128,7 +2313,7 @@ This is the default predicate for [withRetry](#withretry); pass
function mirrorRoster(d1, args): Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:280](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L280)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:280](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L280)
The roster mirror after a committed waiting-room command. The DO's
roster is the integrity copy; this rewrites the D1 display copy wholesale
@@ -2159,7 +2344,7 @@ single attempt.
function openApiDocument(version): OpenAPIObject;
```
-Defined in: [eigen-server/packages/server/src/engine.ts:494](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/engine.ts#L494)
+Defined in: [eigen-server/packages/server/src/engine.ts:494](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/engine.ts#L494)
Build the API document from an inert app: route handlers never run, so
the context can refuse everything. `appName` is an unused placeholder here:
@@ -2216,7 +2401,7 @@ function readGameRow(d1, gameId): Promise<
| undefined>;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:341](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L341)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:341](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L341)
Lazy-init read: the D1 game + participants rows the DO copies into
its `meta`/`roster` on first contact, in one batched round trip.
@@ -2266,7 +2451,7 @@ its `meta`/`roster` on first contact, in one batched round trip.
function updateSummary(d1, args): Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/apply.ts:262](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/apply.ts#L262)
+Defined in: [eigen-server/packages/server/src/d1/apply.ts:262](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/apply.ts#L262)
The display upsert after a non-finishing transition: fire-and-forget
post-commit (the DO leaves it unawaited; no `waitUntil`), single attempt,
@@ -2296,7 +2481,7 @@ re-derivable from the DO at any time.
function withRetry(op, options?): Promise;
```
-Defined in: [eigen-server/packages/server/src/d1/retry.ts:88](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/server/src/d1/retry.ts#L88)
+Defined in: [eigen-server/packages/server/src/d1/retry.ts:88](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/server/src/d1/retry.ts#L88)
Run `op`, retrying a *retryable* failure with jittered exponential backoff up
to `attempts`. A non-retryable failure, or the last attempt, throws.
diff --git a/docs/reference/typescript/testkit.md b/docs/reference/typescript/testkit.md
index 0b33d85..3ae4881 100644
--- a/docs/reference/typescript/testkit.md
+++ b/docs/reference/typescript/testkit.md
@@ -8,7 +8,7 @@ assert on the resulting transitions and per-seat observations.
### ActionCase
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:82](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L82)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:82](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L82)
A game-action case: exercises schemas, `applyAction`, and (through
`expected.observation`) `computeObservation` for the acting seat.
@@ -21,7 +21,7 @@ A game-action case: exercises schemas, `applyAction`, and (through
action: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:93](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L93)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:93](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L93)
##### config
@@ -29,7 +29,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:93](https://gith
config: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:85](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L85)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:85](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L85)
##### expected
@@ -43,7 +43,7 @@ expected: {
};
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:94](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L94)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:94](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L94)
###### observation?
@@ -81,7 +81,7 @@ valid: boolean;
kind: "action";
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:83](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L83)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:83](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L83)
##### name
@@ -89,7 +89,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:83](https://gith
name: string;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:84](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L84)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:84](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L84)
##### obs?
@@ -97,7 +97,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:84](https://gith
optional obs?: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:88](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L88)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:88](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L88)
Dart-side observation payload; unused here (defaults to `state`).
@@ -107,7 +107,7 @@ Dart-side observation payload; unused here (defaults to `state`).
optional participantCount?: number;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:91](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L91)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:91](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L91)
##### pending
@@ -115,7 +115,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:91](https://gith
pending: number[];
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:89](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L89)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:89](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L89)
##### playerIndex
@@ -123,7 +123,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:89](https://gith
playerIndex: number;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:90](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L90)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:90](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L90)
##### rngSeed?
@@ -131,7 +131,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:90](https://gith
optional rngSeed?: string;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:92](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L92)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:92](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L92)
##### state
@@ -139,13 +139,13 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:92](https://gith
state: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:86](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L86)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:86](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L86)
***
### BotSeatableCase
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:118](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L118)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:118](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L118)
A `botSeatable` predicate case.
@@ -157,7 +157,7 @@ A `botSeatable` predicate case.
botConfig: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:122](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L122)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:122](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L122)
##### expected
@@ -165,7 +165,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:122](https://git
expected: boolean;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:123](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L123)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:123](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L123)
##### gameConfig
@@ -173,7 +173,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:123](https://git
gameConfig: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:121](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L121)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:121](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L121)
##### kind
@@ -181,7 +181,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:121](https://git
kind: "botSeatable";
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:119](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L119)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:119](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L119)
##### name
@@ -189,13 +189,13 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:119](https://git
name: string;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:120](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L120)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:120](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L120)
***
### BuildGameContractOptions
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:45](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L45)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:45](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L45)
Inputs for building a [GameContract](#gamecontract) without writing it.
@@ -211,7 +211,7 @@ Inputs for building a [GameContract](#gamecontract) without writing it.
optional fixturesRoot?: any;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L51)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:51](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L51)
Root containing `v/*.json` twin fixtures.
@@ -221,7 +221,7 @@ Root containing `v/*.json` twin fixtures.
game: string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L47)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:47](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L47)
Stable display name used as the generated Dart type prefix.
@@ -231,7 +231,7 @@ Stable display name used as the generated Dart type prefix.
gameModule: GameModule;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:49](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L49)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:49](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L49)
Authoritative TypeScript rules registry.
@@ -404,7 +404,7 @@ the host delivers them as a follow-up versioned ratings transition.
### EmitGameContractOptions
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:55](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L55)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:55](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L55)
Inputs for emitting or checking a [GameContract](#gamecontract) file.
@@ -420,7 +420,7 @@ Inputs for emitting or checking a [GameContract](#gamecontract) file.
optional fixturesRoot?: any;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L51)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:51](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L51)
Root containing `v/*.json` twin fixtures.
@@ -434,7 +434,7 @@ Root containing `v/*.json` twin fixtures.
game: string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L47)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:47](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L47)
Stable display name used as the generated Dart type prefix.
@@ -448,7 +448,7 @@ Stable display name used as the generated Dart type prefix.
gameModule: GameModule;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:49](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L49)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:49](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L49)
Authoritative TypeScript rules registry.
@@ -462,7 +462,7 @@ Authoritative TypeScript rules registry.
output: any;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:57](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L57)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:57](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L57)
Destination `game-contract.json` path.
@@ -470,7 +470,7 @@ Destination `game-contract.json` path.
### GameContract
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:37](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L37)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:37](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L37)
Language-neutral schemas and fixtures shared by a game's Worker and app.
@@ -482,7 +482,7 @@ Language-neutral schemas and fixtures shared by a game's Worker and app.
fixtures: GameContractFixture[];
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:41](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L41)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:41](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L41)
##### formatVersion
@@ -490,7 +490,7 @@ Defined in: [eigen-server/packages/testkit/src/game-contract.ts:41](https://gith
formatVersion: 1;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L38)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:38](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L38)
##### game
@@ -498,7 +498,7 @@ Defined in: [eigen-server/packages/testkit/src/game-contract.ts:38](https://gith
game: string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:39](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L39)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:39](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L39)
##### versions
@@ -506,13 +506,13 @@ Defined in: [eigen-server/packages/testkit/src/game-contract.ts:39](https://gith
versions: Record;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:40](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L40)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:40](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L40)
***
### GameContractFixture
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:19](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L19)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:19](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L19)
One validated twin-fixture document embedded in a [GameContract](#gamecontract).
@@ -524,7 +524,7 @@ One validated twin-fixture document embedded in a [GameContract](#gamecontract).
document: unknown;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:23](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L23)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:23](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L23)
Validated fixture document, retained in its original JSON shape.
@@ -534,7 +534,7 @@ Validated fixture document, retained in its original JSON shape.
path: string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:21](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L21)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:21](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L21)
POSIX-style path relative to the supplied fixtures root.
@@ -542,7 +542,7 @@ POSIX-style path relative to the supplied fixtures root.
### GameContractVersion
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:27](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L27)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:27](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L27)
The four JSON Schemas emitted for one game `schemaVersion`.
@@ -559,7 +559,7 @@ schemas: {
};
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:28](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L28)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:28](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L28)
###### action
@@ -701,7 +701,7 @@ Defined in: eigen-server/packages/kernel/dist/index.d.ts:116
### RatingPoolCase
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:104](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L104)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:104](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L104)
A `ratingPool` predicate case. Omitted timing fields mean null.
@@ -713,7 +713,7 @@ A `ratingPool` predicate case. Omitted timing fields mean null.
access: GameAccess;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:107](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L107)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:107](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L107)
##### budgetSeconds?
@@ -721,7 +721,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:107](https://git
optional budgetSeconds?: number | null;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:109](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L109)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:109](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L109)
##### config
@@ -729,7 +729,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:109](https://git
config: JsonObject;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L113)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:113](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L113)
##### expected
@@ -737,7 +737,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:113](https://git
expected: string | null;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:114](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L114)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:114](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L114)
##### incrementSeconds?
@@ -745,7 +745,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:114](https://git
optional incrementSeconds?: number | null;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:110](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L110)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:110](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L110)
##### kind
@@ -753,7 +753,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:110](https://git
kind: "ratingPool";
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:105](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L105)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:105](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L105)
##### maxPlayers
@@ -761,7 +761,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:105](https://git
maxPlayers: number;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:112](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L112)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:112](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L112)
##### minPlayers
@@ -769,7 +769,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:112](https://git
minPlayers: number;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:111](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L111)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:111](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L111)
##### name
@@ -777,7 +777,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:111](https://git
name: string;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:106](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L106)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:106](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L106)
##### turnSeconds?
@@ -785,7 +785,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:106](https://git
optional turnSeconds?: number | null;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:108](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L108)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:108](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L108)
***
@@ -968,7 +968,7 @@ Defined in: eigen-server/packages/kernel/dist/index.d.ts:246
### TwinFixtureFile
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:75](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L75)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:75](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L75)
One fixture file: cases targeting one `schemaVersion` unit.
@@ -980,7 +980,7 @@ One fixture file: cases targeting one `schemaVersion` unit.
cases: TwinFixtureCase[];
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:77](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L77)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:77](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L77)
##### schemaVersion
@@ -988,7 +988,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:77](https://gith
schemaVersion: number;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:76](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L76)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:76](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L76)
## Type Aliases
@@ -1186,7 +1186,7 @@ type TwinFixtureCase =
| BotSeatableCase;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:126](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L126)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:126](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L126)
## Variables
@@ -1196,7 +1196,7 @@ Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:126](https://git
const GAME_CONTRACT_FORMAT_VERSION: 1 = 1;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:16](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L16)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:16](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L16)
Current format of the language-neutral contract consumed by EigenInteractive's Dart generator.
@@ -1208,7 +1208,7 @@ Current format of the language-neutral contract consumed by EigenInteractive's D
function buildGameContract(options): GameContract;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:121](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L121)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:121](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L121)
Build a deterministic in-memory contract without touching the filesystem.
@@ -1230,7 +1230,7 @@ Build a deterministic in-memory contract without touching the filesystem.
function checkConfiguredGameContract(root?): Promise;
```
-Defined in: [eigen-server/packages/testkit/src/contract-command.ts:76](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/contract-command.ts#L76)
+Defined in: [eigen-server/packages/testkit/src/contract-command.ts:76](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/contract-command.ts#L76)
Fails when the conventionally configured contract is absent or stale.
@@ -1254,7 +1254,7 @@ Use this in CI through `eigen-contract --check`.
function checkGameContract(options): void;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:165](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L165)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:165](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L165)
Fail when an emitted contract is missing or differs from its inputs.
@@ -1296,7 +1296,7 @@ Defined in: eigen-server/packages/kernel/dist/index.d.ts:372
function deepEquals(a, b): boolean;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:480](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L480)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:480](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L480)
Structural JSON equality. Object keys with `undefined` values count as
absent (matching how schema libraries model optional fields); array order
@@ -1349,7 +1349,7 @@ derivation is fixed, so recorded games stay replayable.
function emitConfiguredGameContract(root?): Promise;
```
-Defined in: [eigen-server/packages/testkit/src/contract-command.ts:67](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/contract-command.ts#L67)
+Defined in: [eigen-server/packages/testkit/src/contract-command.ts:67](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/contract-command.ts#L67)
Emits `game-contract.json` from an EigenInteractive package's conventional layout.
@@ -1374,7 +1374,7 @@ games should invoke the executable through their package script.
function emitGameContract(options): void;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:159](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L159)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:159](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L159)
Emit one deterministic, newline-terminated `game-contract.json`.
@@ -1396,7 +1396,7 @@ Emit one deterministic, newline-terminated `game-contract.json`.
function evaluateTwinCase(rules, kase): string[];
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:274](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L274)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:274](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L274)
Run one fixture case against a rules unit, returning failure descriptions
(empty ⇒ the case passes). Pure; the file-reading test registrar is
@@ -1421,7 +1421,7 @@ Run one fixture case against a rules unit, returning failure descriptions
function gameContractFilename(game): string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:173](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L173)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:173](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L173)
A useful default filename for scripts that accept an output directory.
@@ -1443,7 +1443,7 @@ A useful default filename for scripts that accept an output directory.
function gameContractJson(options): string;
```
-Defined in: [eigen-server/packages/testkit/src/game-contract.ts:154](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/game-contract.ts#L154)
+Defined in: [eigen-server/packages/testkit/src/game-contract.ts:154](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/game-contract.ts#L154)
Render one deterministic, newline-terminated contract document.
@@ -1487,7 +1487,7 @@ Type guard: did `commit()` refuse the intent?
function parseTwinFixtureFile(path, json): TwinFixtureFile;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:247](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L247)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:247](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L247)
Validate one fixture file's parsed JSON, or throw naming the offending
file, case, and field. Exported so a repo can lint its fixtures without
@@ -1512,7 +1512,7 @@ running them.
function projectView(rules, args): SeatView;
```
-Defined in: [eigen-server/packages/testkit/src/kernel-scenarios.ts:39](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/kernel-scenarios.ts#L39)
+Defined in: [eigen-server/packages/testkit/src/kernel-scenarios.ts:39](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/kernel-scenarios.ts#L39)
Project one seat's view of a state: the stored-frame shape the same-view
rule compares (`commit()`'s `staleViews` input). Convenience for scenario
@@ -1562,7 +1562,7 @@ never expose it: the whole randomness of the game is derivable from it).
function twinFixtureTests(gameModule, fixturesRoot): void;
```
-Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:290](https://github.com/eigeninteractive/eigen-server/blob/9516295cfda7a65c832f8bfca4371965d368d1ff/packages/testkit/src/twin-fixtures.ts#L290)
+Defined in: [eigen-server/packages/testkit/src/twin-fixtures.ts:290](https://github.com/eigeninteractive/eigen-server/blob/d1c5f4ebdc2ef3feaee4570578045b1298cb107a/packages/testkit/src/twin-fixtures.ts#L290)
Register one vitest test per fixture case found under `fixturesRoot`
(layout: `/v/*.json`). Call at the top level of a test module
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 7862ec1..6b88f74 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -201,14 +201,23 @@ const config: Config = {
// to freeze: the site's first public deploy already served 0.2.x, so
// no 0.1.x page was ever reachable to keep working.
//
+ // 0.2.x was RELABELLED rather than cut, which is worth recording
+ // because it is the first crossing where a cut was arguable: the line
+ // was published, and `eigen_flutter` 0.3.x is on npm pinning it. It
+ // was still the right answer. The engine has no adopters to strand,
+ // the session-snapshot release edited the game object's init migration
+ // in place, so a 0.2.x game's local state does not survive the upgrade
+ // anyway, and a frozen 0.2.x line would have gone on describing a wire
+ // no engine can still speak. That is worse than absent.
+ //
// Naming the current version costs no URLs: Docusaurus serves
// `lastVersion` at the base path, so these pages stay at /docs/*.
- // When a breaking engine release approaches, run
+ // Once the engine has adopters who cannot follow a line break, run
//
- // pnpm docusaurus docs:version 0.2.x
+ // pnpm docusaurus docs:version 0.3.x
//
- // and 0.2.x freezes into `versioned_docs/version-0.2.x` at
- // /docs/0.2.x/* while `docs/` becomes the new line at /docs/*. The
+ // and 0.3.x freezes into `versioned_docs/version-0.3.x` at
+ // /docs/0.3.x/* while `docs/` becomes the new line at /docs/*. The
// generated reference freezes with it, which is exactly right:
// `sync-api` keeps writing to `docs/`, so no part of that pipeline
// has to learn about versions. CONTRIBUTING.md has the procedure.
@@ -216,7 +225,7 @@ const config: Config = {
versions: {
current: {
// Asserted against api/openapi.json; see check-docs-version.
- label: "0.2.x",
+ label: "0.3.x",
},
},
},
@@ -379,7 +388,7 @@ const config: Config = {
},
{ to: "/showcase", label: "Showcase", position: "left" },
{ to: "/blog", label: "Changelog", position: "left" },
- // Renders as "0.2.x", the label from `versions.current` above. With
+ // Renders as "0.3.x", the label from `versions.current` above. With
// one version live the dropdown exists to answer "which engine is this
// describing, and what Flutter release pairs with it", which is why the
// compatibility table is pinned into it rather than left in the
diff --git a/static/openapi.json b/static/openapi.json
index f31b2c1..274d571 100644
--- a/static/openapi.json
+++ b/static/openapi.json
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "EigenInteractive Engine API",
- "version": "0.2.5",
+ "version": "0.3.0",
"description": "The server-authoritative game engine API. Client routes (`/api/engine/*`) require a Firebase ID token; the external-bot webhook (`/api/bot/action`) is HMAC-authenticated."
},
"tags": [
@@ -420,6 +420,178 @@
"games"
]
},
+ "Session": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "session"
+ ]
+ },
+ "seq": {
+ "type": "integer"
+ },
+ "gameId": {
+ "type": "string"
+ },
+ "shortCode": {
+ "type": "string"
+ },
+ "access": {
+ "$ref": "#/components/schemas/GameAccess"
+ },
+ "schemaVersion": {
+ "type": "integer"
+ },
+ "config": {
+ "type": "object"
+ },
+ "turnSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "budgetSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "incrementSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "rated": {
+ "type": "boolean"
+ },
+ "ratingPool": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "minPlayers": {
+ "type": "integer"
+ },
+ "maxPlayers": {
+ "type": "integer"
+ },
+ "createdBy": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "$ref": "#/components/schemas/GameStatus"
+ },
+ "players": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Seat"
+ }
+ },
+ "version": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "frame": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/Frame"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "seq",
+ "gameId",
+ "shortCode",
+ "access",
+ "schemaVersion",
+ "config",
+ "turnSeconds",
+ "budgetSeconds",
+ "incrementSeconds",
+ "rated",
+ "ratingPool",
+ "minPlayers",
+ "maxPlayers",
+ "createdBy",
+ "status",
+ "players",
+ "version",
+ "frame"
+ ]
+ },
+ "Frame": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "frame"
+ ]
+ },
+ "version": {
+ "type": "integer"
+ },
+ "data": {
+ "type": "object"
+ },
+ "pendingPlayers": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "deadline": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "playerTimes": {
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "type": "integer"
+ }
+ },
+ "outcomes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Outcome"
+ }
+ },
+ "ratings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RatingDelta"
+ }
+ }
+ },
+ "required": [
+ "type",
+ "version",
+ "data",
+ "pendingPlayers",
+ "deadline",
+ "playerTimes"
+ ]
+ },
"Players": {
"type": "object",
"properties": {
@@ -715,85 +887,12 @@
"SoloStarted": {
"type": "object",
"properties": {
- "gameId": {
- "type": "string"
- },
- "shortCode": {
- "type": "string"
- },
- "version": {
- "type": "integer"
- },
- "frame": {
- "$ref": "#/components/schemas/Frame"
+ "session": {
+ "$ref": "#/components/schemas/Session"
}
},
"required": [
- "gameId",
- "shortCode",
- "version",
- "frame"
- ]
- },
- "Frame": {
- "type": [
- "object",
- "null"
- ],
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "frame"
- ]
- },
- "version": {
- "type": "integer"
- },
- "data": {
- "type": "object"
- },
- "pendingPlayers": {
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "deadline": {
- "type": [
- "integer",
- "null"
- ]
- },
- "playerTimes": {
- "type": [
- "array",
- "null"
- ],
- "items": {
- "type": "integer"
- }
- },
- "outcomes": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Outcome"
- }
- },
- "ratings": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/RatingDelta"
- }
- }
- },
- "required": [
- "type",
- "version",
- "data",
- "pendingPlayers",
- "deadline",
- "playerTimes"
+ "session"
]
},
"CreateSolo": {
@@ -856,44 +955,15 @@
"botIds"
]
},
- "Joined": {
- "type": "object",
- "properties": {
- "gameId": {
- "type": "string"
- },
- "roster": {
- "$ref": "#/components/schemas/Roster"
- }
- },
- "required": [
- "gameId",
- "roster"
- ]
- },
- "Roster": {
+ "CommandAccepted": {
"type": "object",
"properties": {
- "type": {
- "type": "string",
- "enum": [
- "roster"
- ]
- },
- "status": {
- "$ref": "#/components/schemas/GameStatus"
- },
- "players": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Seat"
- }
+ "session": {
+ "$ref": "#/components/schemas/Session"
}
},
"required": [
- "type",
- "status",
- "players"
+ "session"
]
},
"Join": {
@@ -931,17 +1001,6 @@
}
]
},
- "LobbyAccepted": {
- "type": "object",
- "properties": {
- "roster": {
- "$ref": "#/components/schemas/Roster"
- }
- },
- "required": [
- "roster"
- ]
- },
"LobbyCommand": {
"type": "object",
"properties": {
@@ -968,21 +1027,6 @@
"botId"
]
},
- "CommandAccepted": {
- "type": "object",
- "properties": {
- "version": {
- "type": "integer"
- },
- "frame": {
- "$ref": "#/components/schemas/Frame"
- }
- },
- "required": [
- "version",
- "frame"
- ]
- },
"Action": {
"type": "object",
"properties": {
@@ -1573,6 +1617,77 @@
}
}
},
+ "/api/engine/games/{gameId}/session": {
+ "get": {
+ "operationId": "getGameSession",
+ "tags": [
+ "Games"
+ ],
+ "parameters": [
+ {
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ },
+ "required": true,
+ "name": "gameId",
+ "in": "path"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "The caller's current session snapshot",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Session"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Missing or invalid token",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Not allowed",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorResponse"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/api/engine/players": {
"get": {
"operationId": "getPlayers",
@@ -2309,11 +2424,11 @@
},
"responses": {
"200": {
- "description": "Seated: the game's id and the post-join roster",
+ "description": "Seated: the post-join session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Joined"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2399,11 +2514,11 @@
},
"responses": {
"200": {
- "description": "Seated: the game's id and the post-join roster",
+ "description": "Seated: the post-join session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/Joined"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2500,11 +2615,11 @@
},
"responses": {
"200": {
- "description": "Left: the post-leave roster",
+ "description": "Left: the post-leave session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2605,7 +2720,7 @@
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2702,11 +2817,11 @@
},
"responses": {
"200": {
- "description": "Bot seated: the new roster",
+ "description": "Bot seated: the post-commit session",
"content": {
"application/json": {
"schema": {
- "$ref": "#/components/schemas/LobbyAccepted"
+ "$ref": "#/components/schemas/CommandAccepted"
}
}
}
@@ -2803,7 +2918,7 @@
},
"responses": {
"200": {
- "description": "Started: version 0 committed",
+ "description": "Started: the session at version 0",
"content": {
"application/json": {
"schema": {
@@ -2904,7 +3019,7 @@
},
"responses": {
"200": {
- "description": "Committed: the acting seat's frame",
+ "description": "Committed: the acting seat's session",
"content": {
"application/json": {
"schema": {