diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ec35d70..52322ff 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.3.x` is one line and `0.4.0` starts the next. The label lives in
+minor, so `0.4.x` is one line and `0.5.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,25 +160,35 @@ between two answers:
**Freeze the old line**, the answer whenever a reader could still be running it:
```bash
-pnpm docusaurus docs:version 0.3.x # the line being frozen, not the new one
+pnpm docusaurus docs:version 0.4.x # the line being frozen, not the new one
```
-That snapshots `docs/` into `versioned_docs/version-0.3.x/` at `/docs/0.3.x/*`,
+That snapshots `docs/` into `versioned_docs/version-0.4.x/` at `/docs/0.4.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. 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.)
+still be on it. Set `versions.current.label` and change nothing else. All three
+crossings so far took this answer.
+
+`0.2.x` is the precedent for a cut being arguable and still declined: the line
+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.3.x` is the precedent for a cut being declined on the old line's own merits.
+Its paged reads were broken: a first-page request arrived with an empty `cursor`
+that coerced to `0`, so every lobby and history list answered `200 []`. `0.4.0`
+is the fix and it changes the wire, to opaque cursors and `nextCursor`. Freezing
+`0.3.x` would have published a permanent, searchable account of a protocol whose
+lists are always empty, sitting beside the one that works.
+
+(`0.1.x` was simpler than either: 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 cd4ee08..85a92a5 100644
--- a/api/openapi.json
+++ b/api/openapi.json
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "EigenInteractive Engine API",
- "version": "0.3.1",
+ "version": "0.4.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": [
@@ -75,10 +75,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"GameSummary": {
@@ -402,7 +410,8 @@
"registrationRequired",
"imageTooLarge",
"unsupportedImageType",
- "rateLimited"
+ "rateLimited",
+ "invalidCursor"
],
"description": "A stable machine code identifying why a request failed."
},
@@ -414,10 +423,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"Session": {
@@ -762,10 +779,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"RatingHistory": {
@@ -1263,10 +1288,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"UserSearch": {
@@ -1385,10 +1418,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -1482,10 +1513,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -1999,10 +2028,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -2143,7 +2170,8 @@
"parameters": [
{
"schema": {
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "pool",
@@ -3210,11 +3238,9 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ],
+ "type": "integer",
"minimum": 0,
+ "maximum": 9007199254740991,
"default": 0
},
"required": false,
@@ -3223,11 +3249,9 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ],
- "minimum": 0
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 9007199254740991
},
"required": false,
"name": "to",
@@ -3703,10 +3727,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
diff --git a/docs/reference/http-api/accept-friend-request.StatusCodes.json b/docs/reference/http-api/accept-friend-request.StatusCodes.json
index dcccef6..53851bb 100644
--- a/docs/reference/http-api/accept-friend-request.StatusCodes.json
+++ b/docs/reference/http-api/accept-friend-request.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"The request was accepted"},"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
+{"responses":{"204":{"description":"The request was accepted"},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/accept-friend-request.api.mdx b/docs/reference/http-api/accept-friend-request.api.mdx
index ba585c1..2c0e9ab 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: eJztV0tz2zYQ/iuYvdTuMJLdZHpg0nQU106UOonHUiYHjyZakSsREQnQwFKy6uF/7yxAyknkc04+EY/FPr79dgncg63JIWtrxjmkgFlGNV84TSa/ptuGPEMCjCsP6Q1MbKaxhFkCNTqsiMnJ+j34rKAKIb0H3tUEKXh22qwggUqbSzIrLiA9bRNwdNtoRzmk7BpKwGAl4o0nN84hAW0ghRq5gHYm0r62xpMXzX+cvJBPTj5zuhaPIYVpQcpFP9UWvYr+Uw5tAi9OTg4PjM0GS533hyCBzBomwyKKdV3qLKAx/OZF/pHQ7OIbZXKwdoId6+geOWfdIQKtGMjpMWjINJWgaiyPMtYbgkTG14T5Trbv6oBUWLwik8dTnpHpc50jUwQsxHOFu9JiWChLWmH5wQZ9jVkbuzVvBeag6L3VBhelzFZY0UVTlpAAlk6syubeIjrWma7RcFw4c4RsnSAWR2dojOVLwmAp4vTZ+KaurYvOSVolwx3o361McU0GElgGpvlPppSQHa2050jH654pCegKVzS19hLdKga1NzIOWwJsAg6ZLnWlxfYs+SnvI+VZ4lYVZoU2pCQrSudkWC932qzUttgp3JNpibqkfCDk11xK3s4lwWeSy/YHIt90qZ/9JHrdkRfatg1sPD1k4wftvdi2TnWJVGwjMk+0fKLlL6Hl80NafrSssCztNsT5xMQnJv4SJj7yfxcmLm1jnnj4xMNfwsP2Z38evxFXxIWVC3NtwzxcWVMYYq2HZFba0LBDbNg56of38ZbbDqNKSQVljdO8C3fopXa0QE+Q3szk8ttvTiRfkboPInuSFsx1n1SZLwgdSe7j4MK6ChlSeP9lCodQX3QK1fifePFIlCfDCr2ajxourNP/hSSn6k3Qp14FsddzdWSdmv8dZn/NlTXqCy0mNlsTq6ZeOczJHw+kqhaW31WYfecz1vpf2vW3/YIwDx53b4FzvSLzbKJXBrlxdOi1UXTHws5SLSz/5tW7D6Mz5fsDym7IKS5I0R1mvCfKwua7RC2kmSi2QWCOmSidq9xWqM1ARazVfHOavBJc/nzxev4yiNbkni0sqzXtlPZqLjaP3nyafp2M334cf3z7dXJ+dn0+FQM8zo/nAyVPk0iF4JtXW1yTV1vNRdDosSIVg1fahCXLBTmVa0fBr0EgsDZLG8DrOSv4jA2Tw9CM1Hk0MroaQwIbcj7idDJ4Pjg9QE+88uQ25J5hTDBj0CJNpvd3dDUeqLNSCxWcbZi8Opp/z+3f58eqKyyFhyx62cEfsxRw29KisHbd61lYHnbgHwueAmdwSMo8k5YZuCPVVWFo7x07Yu2oWI/qoSB/iHLPNKY7HtYlaiPaGlfKXqzVG6FhaO4S0UOHg9gypGIhgXT/Mu2KdpZAISWf3sD9vQT92ZVtK8u3DTmp5FkCG3Q69G6p61x7GeeQLrH0dODq/rcGR30rPVbSzh4Loa8gI+WzwbKRGSSwpt3DM7qdtUlfVuJB3Bz1Xac/dvATla6zb2xXnyZTaNv/AU58ouU=
+api: eJztV01z2zgM/SscXDbZUe10N7MHtdsd15u0btMmEzvTQ8ZTwxJssZZIlYTseDP67zsgLaepc+8lJ4tfwMPDA0zeg63JIWtrRjmkgFlGNZ87TSa/pu8NeYYEGJce0lsY20xjCdMEanRYEZOT+XvwWUEVQnoPvK0JUvDstFlCApU2F2SWXED6sk3A0fdGO8ohZddQAgYr2d54cqMcEtAGUqiRC2instvX1njyYvmPk1P5yclnTteCGFKYFKRcxKk26FXETzm0CZyenBweGJk1ljrvDkECmTVMhmUr1nWps8BG/5uX/U+EZuffKJODtRPuWEd45Jx1hwy04iCnp6gh01TCqrE8yFivCRL5vibMt7J8VwemwuQVmTye8oxMN3WOTJGwEM8VbkuLYaIsaYnlJxvsNWZl7Ma8E5qDoQ9WG5yXMlpiRedNWUICWDrxKot7j+hYZ7pGw3Fi6AjZOmEsfg3RGMsXhMFT5OnG+KaurYvgJK2S4R3pP8xMcEUGElgEpflLU0rIjpbac5TjdaeUBHSFS5pYe4FuGYPaOxmFJSE2AYdMF7rSj4gZNs5bJ5J9rIOB8iw8qAqzQhtSkiWlczKsF1ttlmpTbBXuxbVAXVLek2LQXEoezyThQ8lt+0jYtzspTH/aer0TM7RtG9T58lCdn7T34ts6tcOv2EamnmX6LNNfItM/D2X62bLCsrSbEMKzMp+V+UuU+cR9QJS5sI151uWzLn+JLtuf8Tx9o66ICysX7tqGcbjyptDHWvfJLLWh/o7B/g6o79/HW3LbjyYlNZQ1TvM23MEX2tEcPUF6O5XLc7c4lvxFKT9s2Yu2YK67JMt4TuhItBA/zq2rkCGFD18mcEj1+c6gGv0bLyqJ8mRYoVezQcOFdfq/kPRUvQ321Ouw7c1MHVmnZv+E0d8zZY36QvOxzVbEqqmXDnPyxz2psrnl9xVmP2DGWn+kbfdaKAjzgHj3ljjTSzIvxnppkBtHh6iNojsWtZZqbvk3r95/GgyV7w4ouyanuCBFd5jxXihzm28TNZfmotiGDTPMxOhM5bZCbXoqcq1m65fJa+Hlr9M3s1dha03uxdyyWtFWaa9m4vPo7eXk63j07vPo87uv47Ph9dlEHPAoP571lDxtohQCNq82uCKvNpqLYNFjRSoGr7QJU5YLcirXjgKuXhCwNgsbyOs0K/yMDJPD0JzUWXQyuBpBAmtyPvJ00jvtnRywJ6g8uTW5FxgTzBisSNPp8A6uRj01LLVIwdmGyauj2Y/a/n12rHaFpfBQRa929McsBd42NC+sXXV25pb7O/KPhU+hMwCSMs+khQbtSHVVGNr9Th2xdlSsR/VQkI+i3CuN6Y77dYnaiLXGlbIWa/VWZBiavUT00PEgtgypWEgg3b9sd0U7TaCQkk9v4f5egr5xZdvK9PeGnFTyNIE1Oh16udR1rr1855AusPR0AHX/NwdHXWs9VtLOngqhqyAj5bPGspERJLCi7cMzvJ22SVdWgiAuDrqu0x07+FOVrrNvbFeX4wm07f9Xf7o5
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 5529b76..35171bc 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 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 e4b9dd3..62c816d 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: 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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/block-user.StatusCodes.json b/docs/reference/http-api/block-user.StatusCodes.json
index cde76ab..feb081c 100644
--- a/docs/reference/http-api/block-user.StatusCodes.json
+++ b/docs/reference/http-api/block-user.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"Blocked (idempotent)"},"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
+{"responses":{"204":{"description":"Blocked (idempotent)"},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/block-user.api.mdx b/docs/reference/http-api/block-user.api.mdx
index 6e66651..873586d 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/SsYXGp3aMluMj0waTqK6yRKndhjyZODRxNBJCRuRO4yu6Bs1cP/3sFSkp3I55x8ErkfwMPDAwjdo6vZkxhnhzmmOCtdtrwO7DFBoUXA9AZHLjNU4iTBmjxVLOx1/R5DVnBFmN6jrGvGFIN4YxeYYGXsOduFFJietAl6/t4Yzzmm4htO0FKlx5vAfphjgsZiijVJge1ET4fa2cBBLf9x/FJ/cg6ZN7XixBTfKkrO4cDkXNVO2Mohtgm+PD7ePzy0KypNDgqCg2CCmbN6RY9SXZcmi/H3vwU9/0RYbvaNM71Ye2VLTAeNvXd+P/pWHeT8FC1sm0oZtU4GmZgVY6LPV0z5Wrfv6shSXLxkm3e3gpDwdZ2TcEdWjOeS1qWjuFCWvKDyk4v2Gru07ta+V4qjoY/OWJqV+ragit81ZYkJUunVq27uPJIXk5marHQLp55JnEoh655OyVon50zRU8fTtQ1NXTvfgdOUanY3pD9aGdOSLSY494ZtHi5sqSF7XpggnQCvtipJ0FS04LFz5+QXXVA7J8O4pcQm6En43FRGfU+Sn/I+gCAaN1SUFcYyaFbA5GzFzNfGLuC2WANtdQFzMiXnPRW+kVLzdqYJPtVctj+I+GaT+slPR682wsW2baMaT/bV+MmEoL6dh00iQVzHzLMsn2X5S2T5Yl+Wn50AlaW7jXE+K/FZib9EiU9821WJc9fYZx0+6/CX6LD9Gc/jGbhiKZwOxrWLo2McUlPsU236bBfGcn/DU/++G2fbfryvtHPWeCPrOCvPjecZBcb0ZqJD7nZzpLnpZPpwZCfIQqTeJlDfZ0w+4uoe3jlfkWCKH7+McZ/WdxuDMPynGzISCGwFKMB00EjhvPkvJjSFt9EevI7H3kzhwHmY/h3f/pqCs/CFZyMdugWaeuEp53DY0wqaOflQUfYIM9XmX15vp/qCKY+INzP/mVmwPRqZhSVpPO+jtsB3okosYebktwAfPg1OIWwvgFuxBykY+I4y2Yli5vJ1AjNtHCAuHphSpkankLuKjO1BxzVMVyfJa+Xlz5dvpq/i0Zr90cwJLHkNJsBUfR68vRh/HQ3ffx5+fv91dHZ6dTZWBzLMD6c9GCuCKICILcAtLTnArZEiWgxUMXTBg7FxyUnBHnLjOeLqRbEaO3eRvK0+lZ+hFfYUGw+cdU4Gl0NMcMU+dDwd9170TvbYU1SB/Yr9EXUJFopWtKFs8Q4uhz04LY1KwbtGOMDB9LGif58ewqaIgPZV9GpDf5elyNstzwrnlls7Myf9DfmHyqfSGQFpSWfaHqN2tKYqiq18o45YOrCpvR9C28lL+E76dUnGqonGl7rXleWNai92bw3joYVhgunuv2ZXnZMEC63o9Abv7zW6a1+2rS5/b9hryU4SXJE3sSFrAecm6HOO6ZzKwHvwdt8qPNj2x0PQHvUU7G2pWK2TFZWNvmGCS14//C9uJ22yrR9F0G0OsoxreXRt78uo7WXXty4vRmNs2/8Bd1WMnw==
+api: eJztV8Fy20YM/RUMLrU7jOS0nh6YNB1FdRIlTuKx5MnBo4kgEhI3IneZXVC26uG/d7CUFDvyPRefRO5isQ8PDxB4h65mT2KcHeWY4rx02eoqsMcEhZYB02scu8xQidMEa/JUsbDX9TsMWcEVYXqHsqkZUwzijV1igpWx52yXUmD6vE3Q8/fGeM4xFd9wgpYqNW8C+1GOCRqLKdYkBbZTtQ61s4GDev7j5FR/cg6ZN7XixBRfK0rO4cjkXNVO2MoxtgmenpwcGo/smkqTg4LgIJhg5qweUVOq69JkMf7+t6D2j4Tl5t8404O1V7bEdNDYe+cPo2/1gpwfo4VtUymj1skgE7NmTPT5kinf6PZtHVmKixds8+5UEBK+qnMS7siK8VzQpnQUF8qSl1R+dNFfY1fW3di3SnF09N4ZS/NS35ZU8ZumLDFBKr3eqpv7G8mLyUxNVrqFoWcSp1LIuqchWevknCne1PF0ZUNT18534DSlmt0t6fdWJrRiiwkuvGGbh8+21JA9L02QToCXO5UkaCpa8sS5c/LLLqj9JaO4pcQm6En43FTmATHDxgfnVa4PdTCAIMoDVJQVxjJolsDkbMUsNsYu4abYAO10AgsyJec9LQQjpebxTBM+1Ny2D0R9vZXC9CfTy62QsW3bqM7nh+r8aELQu52HLX4Q1zH1JNMnmf4Smf55KNNPToDK0t3EEJ6U+aTMX6LMR2YBVebCNfZJl0+6/CW6bH/Gc3+GrlgKp4N17eLoGYfcFPtUmz7bpbHc3/LWv+vG4bYfz2saOGu8kU2ctRfG85wCY3o91SF5tznWXHWy/WGyF2ghUu8Squ9zJh9xdQ9vnK9IMMX3XyZ4SOubrUMY/dsNJQkEtgIUYDZopHDe/BcTnMLr6A9eRrNXMzhyHmb/xLe/Z+AsfOH5WId2gaZeeso5HPe0ouZO3lWU3cNMtfnAm91XQcGUR8Tbb4Yzs2T7bGyWlqTxfIjaAt+KKrOEuZPfArz7OBhC2B0At2YPUjDwLWWyF8Xc5ZsE5tpIQFw0mFGmTmeQu4qM7UHHNczWz5OXystfp69mL6Jpzf7Z3AmseAMmwEzvPHr9efJ1PHr7afTp7dfx2fDybKIXyCg/nvVgogiiACK2ADe04gA3RoroMVDF0AUPxsYlJwV7yI3niKsXxWrswkXydvpUfkZW2FNsRHDWXTK4GGGCa/ah4+mkd9o7OWBPUQX2a/bPqEuwUPSiDWaHd3Ax6sGwNCoF7xrhAEez+4r+fXYM2yICOlTRiy39XZYibzc8L5xb7fzMnfS35B8rn0pnBKQlnWm7jNrRmqootvatOmLpwLb2HoS2l5fwrfTrkoxVF40vda8ry2vVXuzmGsaPloYJpvtv1a46pwkWWtHpNd7daXRXvmxbXf7esNeSnSa4Jm9ig9YCzk3Q5xzTBZWBD+Dt/7vwaNcvj0F71GOwd6VitU7WVDb6hgmuePPju7qdtsmufhRBtznIMq7l3rGDf0ptL/u+dfF5PMG2/R8nMaPz
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.StatusCodes.json b/docs/reference/http-api/bot-action.StatusCodes.json
index aaf6728..3e3531c 100644
--- a/docs/reference/http-api/bot-action.StatusCodes.json
+++ b/docs/reference/http-api/bot-action.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"The move was accepted and applied"},"400":{"description":"Malformed body","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":"Invalid signature","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":{"204":{"description":"The move was accepted and applied"},"400":{"description":"Malformed body","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","invalidCursor"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"401":{"description":"Invalid signature","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","invalidCursor"],"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/bot-action.api.mdx b/docs/reference/http-api/bot-action.api.mdx
index 4df3e98..4e0814f 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/ivEXBoXa1lujR42aQpZdVKlTmLYCnIQhGi0O14x2iU35KxkVdj/Xgypl6006KHoKReJSw6HM/N981iDrckha2sGOaQwtdzL5AsSYCw8pCO4tPyRpjNr5zBOwFPWOM0rSEdrEf+jwgzS0bgdJ+DoS0OeL22+gnQdPrWjHFJ2DSWQWcNkWI6wrkudhXfPPntrZM9nM6pQVryqCVKw08+UMSRQO7GSNXk5nVoWW3dinp02BSRQaXNNpuAZpOdtAgVW9K8E6xJX5AYmp4cDaW2YCnJRXFdNBWm3TWBBzuto8LcFc2Rxpm2Tg0CMNtbvrHv8+l79OAHWXIr+yx0mbRu1+doaH4PxU/dC/nLymdN1kEphOCNV2QWpJXqFWUY1U67Q5CrEnXJoE7jodo9vvsXy3rqKcjUVEP8zzMg5646haOWBnL6GERkJ5AhM9H5BkMj6ljDYRQ91iGjYvCGTx1uekelDnSOHM20WWOr8BlelxbBRllRg+dYGfY2ZG7s0r7HaaH9jtcFpSRt8XjVlCQlg6eRVOdy9iI51pms0HDf6jpCtkCCLqz4aY/maMLwU4/TB+KaurYvGNZ6cERZEIw92hjgnycB7p8nk/r0pxWVHhfYck/V2y6gEdIUFDa29RldEp3aPDMKRBDYBh0zXutLy9jh5AntPeRa/VYXZTBtSgorSORnW9yttCrWcrRSqTYKre9Ql5R3Yk/RKAO4Llk8JH6EfPxG93ZB4w+mL7vkxGTeBUV4XBrlx9J2P3/n4f/CxfWrPYVusiGdWemVtfSAWSh+BM6z12dTyGW4Ft53yTmIdaXevHU3RHxJsxlxvAZHvKaELzSQuXllXIUMKbz4O4ThMrzYK1eB3xXZOJlGeDCv0atJreGad/isAlKrLoE+9CGIvJ+qZdWryW/j6daKsUR9pemezObFq6sJhTv6kIxmxa/I7m7HWf9Iq8Fk8IMyDxUIViacuyJzeHSTtE6uNogcWZpVqavkHr/542+vvs1zZBTnFM1L0gBnvQJaOlKipbUyu2AaBSQz2ROW2Qm06KsZaTRbnyQuJyy8XLyfPg2hN7nRqWc1ppbRXE3nz2eX74ae7wet3g3evP91d9W+vhvIAD/KTSUdJFyVTCP3ENq+WOCevlppnQaPHilR0XmkTtizPyKlcOwp2dQL5pDbd7iejqwes6pIOJpl9kdmOLPudR7NJ92D86D6aMLS5twGgLacFg4FhchiKlbqKjvRuBgdDRgrdzs+d8yOExHNPbkHuFCOJGIMWsW8bk97NoKP6pRa6OdswefVsErIgCpz9ODlRm8RTeMzU5xuIIxMCNss4Zm717LNpciKYCWTBICkDmZTUwE/JwwpD+d8wUHTt8vWRazsKMz3wWV2iNqKicaWcxVQeCb8h8F6KbdQzTmAm+Z6OYL0WPz64sm1l+0tDTqbhcQILdDqUa5mHk21iyKA8pxWk0I/N63RTAhdYNjGdnjSyNtne6IXh7Zuy44OSdPP+bhgsjwN4FXoZOFyGgruEFCABG2IR6lHYW0OJpmiwENmoUyglgX6c8/OQ85uFeLU9MqsDC4/TP7oiv+LYVy+t17GmtO1OPh79441d1YnSguO4bdu/AYUfbXo=
+api: eJztVktvGzcQ/ivEXBoXa1kpjB42aQpbdRKldmLYCnIQhGi0O14x2iU35KxkVdj/Xgypp5UGPRToJReJSw6HM/N981iBrckha2v6OaQwsXyRyRckwFh4SIdwafkTTabWzmCUgKescZqXkA5XIv62wgzS4agdJeDoa0OeL22+hHQVPrWjHFJ2DSWQWcNkWI6wrkudhXfPvnhrZM9nU6pQVrysCVKwky+UMSRQO7GSNXk5nVgWW7dinp02BSRQaXNNpuAppM/bBAqs6F8J1iUuyfVNTo970towFeSiuK6aCtJum8CcnNfR4O8L5sjiTNsme4EYrq3fWnf4+k79KAHWXIr+yy0mbRu1+doaH4PxS/dc/nLymdN1kEphMCVV2TmpBXqFWUY1U67Q5CrEnXJoEzjvdo9v3mD5YF1FuZoIiP8ZZuScdcdQtPJATt/CiIwEcggmej8nSGR9Rxjsosc6RDRs3pLJ4y3PyPSxzpHDmTZzLHV+i8vSYtgoSyqwvLFBX2Nmxi7MG6zW2t9ZbXBS0hqf101ZQgJYOnlVDrcvomOd6RoNx42eI2QrJMjiqofGWL4mDC/FOH00vqlr66JxjSdnhAXRyL2dAc5IMvDBaTK5/2BKcdlRoT3HZL3bMCoBXWFBA2uv0RXRqe0j/XAkgU3AIdO1rvRBYHqN89YJ2Q5pcKE8SxxUhdlUG1KCktI5GdYPS20KtZguFap1wqsH1CXlHdiR9koA7wm2TxMgUmH0RPRuTeo1x8+7z4/JuQ6U8rowyI2jH/z8wc//g5/tU3v222ZFPLXSS2vrA9FQ+gycYa3PJpbPcCO46aT3EvtIwwftaIJ+n3BT5noDkHxPCF1oNnHx2roKGVJ492kAx2F6vVao+n8otjMyifJkWKFX44uGp9bpvwJgqboM+tTLIPZqrJ5Zp8a/h6/fxsoa9Ykm9zabEaumLhzm5E86kiHbIWBrM9b6T1oGGMUDwjxYLNSReOqCzOn9XhI/sdooemRhWqkmln/y6u3NRW+X9crOySmekqJHzHgLsnSsRE1sY3LFNgiMY7DHKrcVatNRMdZqPH+evJS4/Hr+avwiiNbkTieW1YyWSns1ljefXX4YfL7vv3nff//m8/1V7+5qIA9wPz8Zd5R0WTKF0E9s82qBM/JqoXkaNHqsSEXnlTZhy/KUnMq1o2BXJ5BPatXdbnK6esSqLmlv0tkVnc1Is9s5mF26e+NJ92AC0ebBBoA2nBYM+obJYShe6io6cnHb3xtCUuh2zjvdI4TEc09uTu4UI4kYgxaxbxOTi9t+R/VKLXRztmHy6tk4ZEEUOPt5fKLWiafwmKkv1hBHJgRsFnEM3ejZZdP4RDATyIJBUgYyKbGBn5KHFYZ2sGag6Nrm64FrWwozPfJZXaI2oqJxpZzFVB4KvyHwXopv1DNKYCr5ng5htRI/PrqybWX7a0NOpuVRAnN0OpRvmZeTTWLIID2jJaTQi83sdF0S51g2MZ2eNLY22dy4CMPdd2VHeyXp9sP9IFgeB/Qq9DZwuAgFeAEpQAI2xCLUo7C3ghJN0WAhslGnUEoCfZjzs5Dz64V4tTkyyz0Lj9M/uiK/4tg3L61Wsaa07VY+Hv3jjW3VidKC46ht278BW+95JA==
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 48080fe..661656f 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":{"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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 72fbba8..c054b6a 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: 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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/create-game.StatusCodes.json b/docs/reference/http-api/create-game.StatusCodes.json
index 4b33ba3..e7e8230 100644
--- a/docs/reference/http-api/create-game.StatusCodes.json
+++ b/docs/reference/http-api/create-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"201":{"description":"The created game","content":{"application/json":{"schema":{"type":"object","properties":{"gameId":{"type":"string"},"shortCode":{"type":"string"}},"required":["gameId","shortCode"],"title":"Created"}}}},"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 game","content":{"application/json":{"schema":{"type":"object","properties":{"gameId":{"type":"string"},"shortCode":{"type":"string"}},"required":["gameId","shortCode"],"title":"Created"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-game.api.mdx b/docs/reference/http-api/create-game.api.mdx
index 7f31896..8b17449 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: eJztmd1v2zYQwP8Vgi9rBsVx2mLA3K6Dm6Wdu6YN4nR9CIz6JJ0lNhSpkid/LPD/Phwpf8QOhj0EeXJeYpHH43387uRc7qSt0QEpawa57MnMIRC+hwplIgkKL3s3kh+9HCXS4Y8GPb21+UL27sKjcpjLHrkGE5lZQ2iIt6CutcqC3pPv3hpe81mJFfAnWtQoe9Km3zEjmcjasRWk0IezWYbeb8l5csoUMpFomooNqptUqywcVFMgtnXiFJo8WEmKNB9js/tR1zJpb/8bnVfRnFa5MoQFOhbJrJmoYt/AZSIrZS41LND5B46GbVWxbacsC/P/LeuAOH5rsdRajWD4SmqcGWJm2au1wM2WItNozf7iPNONV1O8WGnuJjLHCTSaZI+llolMm7xAejx9ymQOKzSPpnKZbPF0s4JgN2/rJN1Lyb2YbxFwtqF5uYw3+NoaHzl73j3lXzn6zKmaAhbyukQRiyAXRSyDR8KatQ3yfayZzdI6OrM5PrC7E5dWy/aZPYfz1tuX3e6+gwMzBa1y0dby4/mHzln3oHvZg55tytlY6mekphxsY+kKIV/w9rwOXofFSzR5POUJCL/UeXCUQQz+XMJCWwgLWmMB+sIGfY25NXZm2o5mLH2wykCq+Ylj+Y4JTSRox7fy5vpGcKQyVYOhuBCCaxnrLH46A2MsfUQIN8U4fTG+qWvronGNR2c4Y9HIrZVruEWz6VufjWaXHRbKU+zHV6usJ1JVUOC1tR/BFdGp9SWDsMWBjc3ko6oU3z1KdvLeF57Yb1FBViqDgrMiVI6G1GShTCFm5ULAigsxAaUx78gNXOec4EDcLpQx9aMd0au22NY0PlBuF8p7vts60SZSkI2ROWB5wPJJsHyxj+UnSwK0trPg54HEA4lPQuLLh0mc2MYcODxw+GQc/rrP4ZCTKfjLt1YZvRIO/cJkAgx/kyS3OOB5wPOJ8Hz+fB/PvvdMkDWiUr4CysoDkAcgnwLI5a4990ZoFVJpebBW2/C3dg1Uyp48gVqdoCmUwZMiTNcS6TFrnKKF7N3cyYlymILnccpoOdpsDjkXEcuNyBrAkqheJSxMkxBcmMPED++sq4BkT374ei33w/iuVSgGf8Q/whLh0ZAAL8b9hkrr1D8hgT3xNugTr4PYm7F4Zp0Y/x6efhsLa8RXTIc2u0USTV04yNEfdbhiUkt/VpBt2Qy1+gsXgXf2ACGPkyMIHpyrAs3xUBUGqHG4b7UROCcmT4vU0k9e/HnRPxN+dUDYKTpBJQqcQ0ZrCFKbLxKR8hcrQTYIjCFjpWOR2wqU6YgYazGeniavOS6/vHwzfhVEa3THqSVxiwuhvBjznc/efr7+Nhy8/zT49P7b8Pzs6vyaL6BBfjTuCB4rxXwH27yYwS16MVNUBo0eKhTReaFMWLJUohO5chjs6gQ4uXddbaaw53Ooao3bU9PNcHRn4tndGnDuTDS794eW3fVcMs51700ieVi3N06Mi/szwfWwcGJDyldVxFkdGEIHoT2K8xia/uVAJnK6slh2Oy86p3s551h6dFN0xxCxJAhauJJWUe5fDjriTCsG2NmG0Itn4+2y+3l8JNpSF7DP/qsWmshWyPYM09La25We1NJJi8wRU8AQBIO48WQcv0A8F34F4YXTMh0bhGg7xD3f1lVBOKeTWoMKo+DGad6LzeOGSya8ZNiPttuHsWfJPaZ3I+/u2JUvTi+XvPyjQcddZZTIKTgV3hHcVpJVtXHDucUFzw/jG/O47btT0E2s0Z235zJZneABe03/KTvaaoOXn4fcetL2PwhVeIFKB7PQ5WeyJ2UibYhGaHJh7U5qMEUDBctGnfzzL/gmqWY=
+api: eJztmd1v2zYQwP8Vgi9rBsVxu2DA3K6Dm6Wtu6YN4nR9CIL6JJ0lNhSpkid/LPD/PhwpfwfDHgLkxXmJRR6P9/G7k3O5l7ZGB6SsGeSyJzOHQPgOKpSJJCi87N1IfvTyNpEOfzTo6Y3N57J3Hx6Vw1z2yDWYyMwaQkO8BXWtVRb0nnz31vCaz0qsgD/RvEbZkzb9jhnJRNaOrSCFPpzNMvR+Q86TU6aQiUTTVGxQ3aRaZeGgmgCxrWOn0OTBSlKk+Rib3Y+6Fkl7+9/ovIrmtMqVISzQsUhmzVgV+wYuElkpc6lhjs4/cDRsq4pte86yMPvfsg6I47cSS63VCIavpMaZIWaWvVoJ3GwoMo3W7C/OMt14NcGLpeZuInMcQ6NJ9lhqkci0yQukx9OnTOawQvNoKhfJBk83Swh287ZK0lZKtmK+QcDZmubFIt7ga2t85OxF9zn/ytFnTtUUsJDXJYpYBLkoYhk8EtasbZDvY81sltbRmc3xgd2duLRaNs/sOZy33p52u/sODswEtMpFW8uP5x86Z92D7mUPerYuZ2Opn5GacLCNpSuEfM7bszp4HRYv0eTxlCcg/FLnwVEGMfhzCXNtISxojQXoCxv0NebO2KlpO5qx9MEqA6nmJ47lWyY0kaAd38qbqxvBkcpUDYbiQgiuZayz+OkMjLH0ESHcFOP0xfimrq2LxjUeneGMRSM3Vq7hDs26b302ml12WChPsR9fLbOeSFVBgdfWfgRXRKdWlwzCFgc2NpOPqlJbgTlrnLeOIdnmoC88cRxEBVmpDArOklA5GlLjuTKFmJZzAUtOxBiUxrwj17Cdc8IDgbuQRhRud0Sv2uJb0flA+V0o7/lu60RrvyAbI3XA9IDpk2D6yz6mnywJ0NpOgwsHMg9kPgmZpw+TObaNOXB54PLJuPxtn8shJ1fwl3etMnopHPq5yQQY/iZKbn7A9YDrE+H64sU+rn3vmShrRKV8BZSVB0APgD4FoItde7ZGdBVSaXlwV9vwt3wNVMqePIFanaAplMGTIkzvEukxa5yiuezd3MuxcpiC53HN7eJ2vTnk3ERM1yIrIEuiepnAMK1CcGHOEz+8ta4Ckj354eu13A/j21ahGPwZ/6hLhEdDArwY9RsqrVP/hIT2xJugT7wKYq9H4pl1YvRHePp9JKwRXzEd2uwOSTR14SBHf9ThCkotva8g27AZavUXzkOa2QOEPE6mIHhwrgo0x0NVGKDG4b7VRuCMmEQtUks/efH+on8m/PKAsBN0gkoUOIOMVhCkNp8nIuUvYoJsEBhBxkpHIrcVKNMRMdZiNHmevOK4/Hr6evQyiNbojlNL4g7nQnkx4jufvfl8/W04ePdp8Ondt+H52dX5NV9Ag/xo1BE8tor5DrZ5MYU79GKqqAwaPVQoovNCmbBkqUQncuUw2NUJcHIvu1pPec9nUNUaN6ey6+HrzkS1uzFA3ZmYdreHot3V3DPOjbcmnTwM3BtXxsX9meNqGDm2IeXLKuKsDgyhg9AuxXkMTf9yIBM5WVosu53TTncv5xxLj26C7hgilgRBC1fSMsr9y0FHnGnFADvbEHrxbLRZdj+PjkRb6gL22X/ZQhPZCtmeYlpae7fUk1o6aZE5YgoYgmAQN56M4xeI58KvILyAWqZjgxBth9jybVUVhDM6qTWoMGpunOa92DxuuGTCS4f9aLt/GKuW3GN6N/L+nl354vRiwcs/GnTcVW4TOQGnwjuD20qyrDZuOHc45/lkfIMet314ArqJNbrzNl0kyxM8wK/pP2VvN9rg5echt560/Q9FFV6o0sE0dP2p7EmZSBuiEZpcWLuXGkzRQMGyUSf//Av3C8xk
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 073cbef..b24cb8d 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":{"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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 b746408..1d69b32 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.StatusCodes.json b/docs/reference/http-api/delete-account.StatusCodes.json
index 8a3ee85..aab6538 100644
--- a/docs/reference/http-api/delete-account.StatusCodes.json
+++ b/docs/reference/http-api/delete-account.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"The account and its data were deleted"},"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"}}}},"502":{"description":"Deletion failed; the account is intact, 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"}}}}}}
\ No newline at end of file
+{"responses":{"204":{"description":"The account and its data were deleted"},"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","invalidCursor"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"502":{"description":"Deletion failed; the account is intact, 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","invalidCursor"],"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/delete-account.api.mdx b/docs/reference/http-api/delete-account.api.mdx
index cca1102..b3d34d9 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: eJztVVFz2zYM/is4vizZKXbSdXtwu+5cx0ndJW0uca4POV8FS4jEWiIVErLj5fzfdyBlJ4vf99QnUQQJfPjwAXxStiGHrK2Z5GqgcqqIaZhltjWsEsVYeDW4U5ekZoly5BtrPHk1eFJvjt/KJyefOd2IBzVQ05IA421Ak4NmDzkywoocQfSeq02i3h6f7N++1N5rU4B1oM0SK50D2wUZlajMGibDcgebptJZwNz/4eXik/JZSTXKitcNqYGy8x+USQaNkwxZR9DknHUvjnl22hQCKLM57RsSRaathQFjeZixXpJKZH1NmK/F/NhoR3ncvCKTx1uekem2yZGDrcvmCteVxbBRVVRgdWmDv9YsjF2Zc6w775+tNjiv5K/Ams7aqlKJwspJVDHuIqJjnekGQ7WM5ZEjZOuEsbgaoTGWLwhDpMjTrfFt01gXwbWenMGaJhHki50pRvLvnSaT+6+mkpQdFdpzFM01PbRd/rrGgqbWXqArYlK7IJNgEmIT5ZDpQtdaYs+SVwIYgmfJG2rMSm0IpCqgczKs79cijVW5BgRHDy15hnvUFeU9EarmSuo2lgKPpJabjUDt4A3uutLPXh297iStNhu58Pvxm31ZnopstTVduHfAL1SuPWjDmHECjtitf2r1p1b/D61uXuN5Pbpr4tI+z3SRF3KpBqqPje6TKbShfiiip6x1mtdqcPek7rWjOXpSg7vZZvZsvJFqRGE+H9lJsGRutiWT/zmhI6lsXJxZVyOrgfr8bar2iTzrHMLkNA78BDzJC+IhHbZcWqf/CSUcwMfgD96HYx9SOLAO0r/C358pWAPfaH5jswUxtE3hMCd/2JOemVv+VGP2AjM2+m9aB8VLBoR5QCxiEsZ1QeboRhcGuXW0j9oAPbJor4K55V88fLocjsBvL4BdkguTgh4x450M5jZfJzC3rZHHLRxIMROnKeS2Rm16ELmGdHmSvBde/nj7IY1TpyF3NLcMC1rL5Ekl5sHHr9PvN5PzL5Mv599vxqPr8VQC8CQ/THsgL3IsdsDmYYUL8rDSXAaPHmuCmDxoE7Ysl+Qg144Crl6Qpzb3NpC3VaTwMzFMDsOogXEMMryaqEQtyfnI03Hvt97JHnuCypNbkjvCWGDG4EVGyBbv8GrSg1GlRQrOtkweDtKX6v01PYSubQD3VfSuoz9WKfC2onlp7WLrZ26535F/KHwKnQGQNHEmAzFop7GeawzDu1NH7Cl47rb/pLeTGNMj95sKtRE3ravEFtvwTvQXZrakEvpVGr60nsX49CSp3Lpqs5Hth5ac9OcsUUt0OsxbadBkq1tp3QWtRZhZRo1AWmLVRp2/eoOkrXfT4XR8MZ6O1WbzLz4ufis=
+api: eJztVU1z2zgM/SsYXjbZUey0k92D2+2O6zitu0mbSZzpIZOpIAmxWEukQkJ2vB7/9x2QsvPhH7CXnkQRJPDw8ACulW3IIWtrJoUaqIIqYhrmuW0Nq0Qxzrwa3KoLUneJcuQbazx5NVirt8cn8inI50434kEN1LQkwHgb0BSg2UOBjLAkRxC9F2qTqJPjN/u3L7T32szAOtBmgZUugO2cjEpUbg2TYbmDTVPpPGDu//Ryca18XlKNsuJVQ2qgbPaTcsmgcZIh6wianLPu2THPTpuZAMptQfuGRJFpa2HAWB7mrBekEllfERYrMT822lERNy/JFPGWZ2S6aQrkYOuyucRVZTFsVBXNsLqwwV9r5sYuzSesO+9frDaYVfI3w5rO2qpSicLKSVQx7iKiY53rBkO1jOWRI2TrhLG4GqExls8JQ6TI043xbdNYF8G1npzBmiYR5LOdKUby750mU/hvppKUHc205yiaK3pou/x1jTOaWnuObhaT2gWZBJMQmyiHTOe61i+IGbXOWycSeymIIXgWHqDGvNSGQKoEuiDD+n4lUlmWK0Bw9NCSZ7hHXVHRE+FqrqSOYyn4SGq72Qj0Du7gtpPC3aujV53E1WYjF/44frsv01ORsbamC/cO+JnqtQdtGHNOwBG71S/t/tLu/6HdzWs8r0d7TVzap5kvckMu1UD1sdF9MjNtqB+K6ilvneaVGtyu1b12lKEnNbi929w9Ga+lOlGoT0d2kiyZm20J5T8jdCSVjosz62pkNVBfvk/VPpFnnUOYnMYHIQFP8sJ4SIctl9bpf0NJB/Ax+IP34diHFA6sg/Tv8PdXCtbAd8qubT4nhraZOSzIH/akhzLLn2vMn2HGRv9Dq1BoyYCwCIhFXMK4npE5utYzg9w62kdtgB5ZtFhBZvk3D58vhiPw2wtgF+TC5KBHzHkng8wWqwQy2xp5/MKBFHNxmkJha9SmB5FrSBdvkvfCy58nH9I4hRpyR5llmNNKJlEqMQ8+fpv+uJ58+jr5+unH9Xh0NZ5KAJ4Uh2kP5MWOxQ7YPCxxTh6Wmsvg0WNNEJMHbcKW5ZIcFNpRwNUL8tTm3gbytooUfiaGyWEYPTCOQYaXE5WoBTkfeTrunfSO99gTVJ7cgtwRxgIzBi8yUrZ4h5eTHowqLVJwtmXycJA+V+/v6SF0bQO4r6J3Hf2xSoG3JWWltfOtn8xyvyP/UPgUOgMgaeJcBmTQTmM91xiGeaeO2FPw1G0v0ttJjOmR+02F2oib1lVii214K/oLM1xSCf0qDV9az2JcryWVG1dtNrL90JKT/rxL1AKdDvNXGjTZ6lZad04rEWaeUyOQFli1Ueev3iRp6910OB2fj6djtdn8B6rGidU=
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 4b1ff12..c020246 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 cea0106..94b51a6 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":{"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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 1d0f7f1..0e4d451 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: eJztWt9v20YS/lcW+3LxgbGdNCjulF4Ptuuk6iWxYTvtgyFUI3JEbU3uMrtD2zqB/3sxuyRFkaocoEae5Adb4g7nxzffDIe7XklToAVSRo8TOZJzY+eo6D3kKCNJkDo5upX81clJJAuwkCOh5csr6eIF5iBHK0nLAuVIOrJKpzKSudIfUKe0kKNXVSQtfimVxUSOyJYYSc36RzKFHMeJjKTSciQLoIWsJkEaHZ2aZMm6+zfHRhNq4iUoikzF3v2jP5zRfG3glJn9gTHJSBaWgyWFzsshUEdKacIUbfBd5WUuR8cVG8tz0AmDszvKSObw2H57/a9qI+zbYG4SSVKUsZJ3AWlZVUHSFUa74Nnr42P+k6CLrSo4uLW8YIcUETJsz4aEcyrcslswrA5xQM1w3baKJlUkHX7Zgm4VNUkfqOF7FsbSmUm2GKkiCXGMzu2yX5SzTMXebXUPxBSeW4U6cV3kmc0nQRfb9CD9irYHQcfj2Oi5SofwVJGk0uprjA2baNdvO2TSZZZ5PGZlkiJ9nazSscUc9VeKW2A6rN2bGZMhaBmWlE4vjcm6OlrgWhW50pcZLH1hb4Mgh8ed67FFduJ0uduMI6ByZwofQFG4YhGSpeS0k7r3qVRauYUnPsyM5Zh7Wb0O6qtIFgNnwVpgdYowd09TPSgY6wQft0dcOrRdGm8Ld2boKZGnSmpR5qClVyUn/Z7SdbL1qDFb6+5AdM0tiHXc99m+lVZz67v0SoJeXsx9w/977SEonGxzoItsArSlaXFSUSfM5q/ObauUtSIkmdL4RNAB0huV40bVNRaC3G5LpqTYbNz/7OSz6MqMdtaRYtZkxjkZycTCA69lKlfaN4s61Nh3me02CCHf4YKLjd0AU5f5rIvlTq7WAXSd6FrskPYioOmRDd3sbwCrEtSkaPm05LOUdw+CXoF2grzygY0b7zg5Gy278xTMy1Ocb0DfIM9JUWkOO9YT5TgPA4lupy9P5oT2r9X/9XKtvS/QLe0gcbYAnW6130OszVcNSCf8zWD7oa3j2PC652PfoUFGfsKMQFZ9t7zX6y5Wt6xBg+o0nc3G0h0DfU+sog6cWSarAXdqkzxVReu5eT0wteNRf6Jpx5fNYaU/kGwZOprBYmOK2BgVNuaC7hDQPunXT+IuXPWDoPtkCoPjcGiuB8q16FkYyHmAK9i7MD+/2TYyj/U9ZCoR9fvE8w3MaK2xW6sz3jq8rtuyNnTSzDPa0FU94+Bj4UP2Fy8Di2oQ8XOR1GlQIZ5LWGYG/IUswxSyj8brK/WdNg+6fnfThn4xSsMsw5ox75hZkYTMT1a82FoESypWBfg2rA2dcSaNbXJq7BlobegDgrcUcPqsXVkUYRAL0we/1tWgd67cwB3q9Sh+obOlfwKkylF49bxqUh5JlUOKN8Z8AJuGoFojY78U6oCZ+UHlqh4CN/N+Ihxx3CKHeKE0Cs6KCL1kvlQ6FQ+LpYCGF2IOKsPkUK5Jds4J9nXVZ2RI/aQnelW/vrVsfDVk40flHNs2VtSJFGQCMnta7mn5TWj53ZCWnwwJyDLz8Jw7Cnsm7pm4m4lvtjNxbkq95+Geh9+Mh/8e8pB3kdgVPc9UTG+FRbfUsQDNkyTZ5Z6ee3p+I3q+fj2k54lzzCCjRa5cDhQv9oTcE/JbELLq+7N5WpgjLQwfIhbGv2z787yRPIJCHaFOlcYjzpY7WoX9i+qovt/va8Sl9Rtztys5VxZn4HhLbcLngc3iNWcnEHUt0lJyQVQ0KfSnIAjW7/GED++MzfnAT/7y240cAvuuVijGP4XXskg41CTAielJSQtj1f99Skfi1OsTP3ixH6fihbFi+l//7T9TYbT4DWfXJr5DEmWRWkjQHRzKsF/4cw5xd/uyUP/DZXMAukBIwg5qOB49Vynql9cq1UBl2OTa9FoLfCTmYiZmhv7hxM8fT86Ea24Q5h6toAUKfISYWlrMTLKMxIxHLUHGC0z5lMXoqUhMDkofioC1mN6/in5gXL5/8+P0rRct0L6cGRJ3uBTKiSnbfHF6cfP79fj9p/Gn979fn59dnd+wARonB9NDccMeeAJ435x4gDt04kHRwmt0kKMIwQul/SVDC7QiURa9X4eertzNrtZnw+ePkBcZrs9yjzeOazvNS+m58ag31GZgx5rQhsMlcR68O7kcd/apRvL48LvDVwPYORyH9h7tSwjMIPBamNZNoCeX40NxlinmkDUloRMvpt1S+Of0QNT1J2BIv7d13kJ6PeAPOFsYc9fomRk6qrN2wIngPHiHuBvE3FkPw0ayIz5CGq0aWtVVJ+qy3QiuZSbhIx0VGSh/jFhavxkdKvqWaetbfxq2Nn1Vy0iO2n3JprAnkVxwMxjdytWK4/tss6riy19KtFztk0jeg1W+m3PtJ8rx50SO5pA5HLjXPujki6a5HojmrKvvdlNlmkvsHrKSv8lI3uFy/d8HFW/l16XHHoTFs2DnZd2Wm5sHD1feuQ13hB3JnbKTTpO8vLi+8UcB4Z8ccv98leGghn97R42P23c8f20lM9BpCbx5LoNO/vkTMVm7ow==
+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.StatusCodes.json b/docs/reference/http-api/get-bots.StatusCodes.json
index 5aa2247..c5099a7 100644
--- a/docs/reference/http-api/get-bots.StatusCodes.json
+++ b/docs/reference/http-api/get-bots.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The bot catalog","content":{"application/json":{"schema":{"type":"object","properties":{"bots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"schemaVersion":{"type":"integer"},"ratedEligible":{"type":"boolean"},"config":{"type":"object"}},"required":["id","username","displayName","avatarUrl","schemaVersion","ratedEligible","config"],"title":"Bot"}}},"required":["bots"],"title":"Bots"}}}},"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
+{"responses":{"200":{"description":"The bot catalog","content":{"application/json":{"schema":{"type":"object","properties":{"bots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"schemaVersion":{"type":"integer"},"ratedEligible":{"type":"boolean"},"config":{"type":"object"}},"required":["id","username","displayName","avatarUrl","schemaVersion","ratedEligible","config"],"title":"Bot"}}},"required":["bots"],"title":"Bots"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-bots.api.mdx b/docs/reference/http-api/get-bots.api.mdx
index 63fa216..8dfdeb2 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/Kzr00dIQJTaYPTpoOoYY4BcKAaR4YT7yS1tLF0p1ytzK4jL97Z+9k49h0+tLJE0/Id6v9+9tF+6BsQw5ZWzPMVV8VxO8te5UoxsKr/q0KP8eJcuQbazx51X9Qv7x8KX9y8pnTjbyt+mpUEqSWIUPGyhYqUZk1TIZFFJum0lkwdPDVi/yD8llJNcoTLxpSfWXTr5SxSlTjxC3W0VoqLjxKoXO4UInSTLX/77d1viHj2WlTqGWiWk/OYE1PXubaNxUuLv7tHufI6G5c9Xh7u7pOlGmrSo2XSRfgX+S8jhF3irRhKsiJJodM+aDShU6rTVuptRWhEZHMmqkudgNdyuv0rdWOcrGvc7UR1vdBbLq87de2E2uL40SxZnFLKFDLbYNph8aGkBepZaJePwXI0Myx0jmIDvL8/wFCzln3ZKEymz9RwUSRaWsJwVg+yljPJWpj+YowF7TovglBhsNLMnl8yzMy3TS5pEsAjPFc4qKyGA6qigqszm3Q15qZsXfmNObfWP5otcGY4QJrOhFMEoWVE6tyubaIjnWmGzQcD44dIVsnGYtPx2iM5TPCYCnm6cb4tmmsi86tQOiSvnEywhlJ1adOk8n9J1NJyI4K7TmOgqtVkROlayxoZO0ZuiIGtTYyDFeS2EjQma612B4nW3U/As8SN9SYldoQSFVA52RYTxfaFHBXLgBXXMAUdUV5Tz2SNZACH0sttxmMpR9viV51w2pN4+Eujefae7FtHXSFBLYxM89YPmP5Q7B8tYvlhWXAqrJ3Ic5nEp9J/CEkvn6axKltzTOHzxz+EA6X2/48biM1cWm7BUWoQi5VXx1gow/IFNrQQRoFPWWt07xQ/dsHNdWOUvTydT5ejh8vr6UMkchHkTV7JXOzqlX4FCd0JCWNDyfW1ciqrz5+HqndDJ50CmH4R/yeSMCTYUAPk6OWS+v036F2fXgf9MHbIPZuAi+sg8nv4ddvE7AGPlN6bbMZMbRN4TAnv9eTZkktf6gx29yJGv0nhaVIvCgJ8+BxXHDUQBdk9q91YZBbR7teG6B7Fugq2eB+8vDh/OgY/OoFsHNywCUB3WPG6/qnNl8kkMqMALZBYIKZKJ1AbmvUpgcx1zCZHyZvJS+/vn43eRNEG3L7si/OaAHaw0Rsvnj/afTlenh6Mbw4/XI9OL4ajMQAD/O9SQ9kw4zlDr55uMMZebjTXAaNHmuCGDxoE44sl+Qg146CX73ApTZTG5K3QlHyMzRMDsOMgUE0cnQ5VImar/Y39bL3qne4kz3xypObk9vHWGDGoEVmx8rfo8thD44rLSg42zJ5eDHZ5PfnyR50/QK4S9GbLv2xSiFvd5SW1s5WelLLB13y9ySfks7gkHRvJpMwsNNYzzWGqd3RURBD12bfBbaGi+meD5oKdVhH27j1xha8FfLCmJYgVLLeCUvrWa4fHiSMG1ctl3L8rSUnvTlO1BydDkNWmjNZMSttO6OFQJll1Eizz7FqI+Nb/3ikpdeD4XQwUsvlP9Vb3eU=
+api: eJztl01v20YQhv/KYi+NC0Z2WqMHJU3hqIqjfDiGLTcHQ4iG5IjciNxhdoeyVUP/vZhdSpYlF70UyMUnU7vD+Xjn2TXnTlODDtiQHeW6rwvkN8ReJ5qh8Lp/rcPPSaId+oasR6/7d/qXoyP5k6PPnGnkbd3X4xJVSqwyYKio0InOyDJaFlNomspkIdDhNy/2d9pnJdYgT7xsUPc1pd8wY53oxklabGK0VFK4twLnYKkTbRhr/99vm3zLxrMzttCrRLcenYUaH93MjW8qWJ792z4sgMFduep+93q9nWjbVpWerJKuwL/QeRMr7hwZy1igE08OGPNhZQqTVtuxUqIKwYpJRnZmiv1CV/I6fm+Nw1zim1xvlfWwiO2Ud/PaTWITcZJoNixpCQV6tRsw7dDYMvJitUr08WOAjOwCKpMr8YGe/z9A0DlyjzYqo/yRDiYabVtLCZb4JGOzkKot8QVCLmjhbROKDIvnaPP4lmdgvGpykUsAjPWcw7IiCAtVhQVUnyj4a+3c0o09jfpb4vdkLESFC6jxrWCSaKicRJXNTURwbDLTgOW4MHAITE4Ui08DsJb4I0KIFHW6sr5tGnIxuTUInehbK2OYo3R95gza3H+2lZTssDCe41VwsW5yok0NBY6JPoIrYlGbIKOwJcJGgj6a2jwQZtA6T04IecjBifIsOqgastJYVNIlZXK0bGZLYwt1Uy4VrDlRMzAV5j19T9pQGj6Q3u4yGVGY7JhedJfXhs4X+3R+Mt5LbHKqy18xRaWeMH3C9Idg+us+pmfECqqKbkIJT2Q+kflDyDx+nMwZtfaJyycufwiXq9187qeZGrmkbsARyoBL3deH0JhDtIWxeJhGQ49Z6wwvdf/6Ts+MwxS8fN1PVpP7zUtpSyT03mTDYsncrHsXPuURHEqL48NbcjWw7uv3X8Z6X8G3nUM1+jN+fyTKo2UFXk1PWi7Jmb9DL/vqTfCnXgWz11P1jJya/hF+/T5VZNUXTC8pmyOrtikc5OgPenJ4UuJ3NWTbM1VjPmAYqiSLEiEPGccBSQ9Ngfb5pSkscOtwP2ur8JYFwkomwJ+8evfpZKD8+gVFC3SKS1R4Cxlv+p9SvkxUKneGYgoGU8jE6VTlVIOxPRW1VtPFi+SV6PLb8evpy2DaoHsu8+Ycl8p4NZWYz958Hn+9HJ2ejc5Ov14OBxfDsQTgUX4w7SmZUGO7Q25e3cAcvboxXAaPHmpUsXhlbFgiLtGp3DgMefUCl8bOKIi3RlH0GVlGB+HOUcMY5OR8pBO9WM9/+qh33DvaU0+y8ugW6J5DbDBD8CJ3yTrfk/NRTw0qIyg4ahm9ejbd5vfn6YHqzouCfYpedvLHLgXdbjAtieZrPynxYSf+gegpcoaE5PRmcjMGdhryXEO4xTs6CmTVHbMHhW3gYrzlw6YCE8bZNk7N8QheC3nh2pYidLKZKUvyLNt3d1LGlatWK1n+3qKTszlJ9AKcCZeuHM5kzawc2zkuBcosw0YO+wKqNjK+849IjvTmYjgdjvVq9Q/crPU5
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.ParamsDetails.json b/docs/reference/http-api/get-frames.ParamsDetails.json
index 301c150..9079359 100644
--- a/docs/reference/http-api/get-frames.ParamsDetails.json
+++ b/docs/reference/http-api/get-frames.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"gameId","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"default":0},"required":false,"name":"from","in":"query"},{"schema":{"type":["integer","null"],"minimum":0},"required":false,"name":"to","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"gameId","in":"path"},{"schema":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0},"required":false,"name":"from","in":"query"},{"schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"required":false,"name":"to","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-frames.StatusCodes.json b/docs/reference/http-api/get-frames.StatusCodes.json
index adfe4bd..24ff7ae 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","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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 577fb2c..447366a 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.ParamsDetails.json b/docs/reference/http-api/get-friends-games.ParamsDetails.json
index 0c00935..7c00d0e 100644
--- a/docs/reference/http-api/get-friends-games.ParamsDetails.json
+++ b/docs/reference/http-api/get-friends-games.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"]},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-friends-games.StatusCodes.json b/docs/reference/http-api/get-friends-games.StatusCodes.json
index 51812b1..49b6107 100644
--- a/docs/reference/http-api/get-friends-games.StatusCodes.json
+++ b/docs/reference/http-api/get-friends-games.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Joinable games created by the caller's friends","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}},"required":["games"],"title":"FriendsGames"}}}},"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
+{"responses":{"200":{"description":"Joinable games created by the caller's friends","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}},"nextCursor":{"type":["string","null"],"description":"Pass as `cursor` to fetch the next page. Null when there are no more results."}},"required":["games","nextCursor"],"title":"FriendsGames"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-friends-games.api.mdx b/docs/reference/http-api/get-friends-games.api.mdx
index 9a17b10..e6eb999 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: eJztWVtz27YS/isYvDTpMLLTpudB7WlHcZxUPbl4LOf0weOpluSKQg0CLLC0rXr03zsLkBJJyXJn2smTnywTy718+y12Ad5LW6EDUtZMczmWBdJbp9Dk/h2U6GUiCQovx5dyZjMFWl4lsgIHJRI6fn4vfbbEEuT4XtKqQjmWyhAW6GQiS2VUWZdy/DKRJdzF398dJzLHBdSa5Pib43UiHf5RK4e5HC9Ae0ykgZIVaVUqkolURo7lHzW6lVwnuwYvOxZNrbW8OqAzq523bqD0iuV9ZY1Hz3q/OT7mPzn6zKmKwZFj+YtVBlKNomBkROYQCHORrgQtUWSgNbqvvFhE+GQiM2sIDbEmqCqtsgDz0e+e1e3Bzaa/Y8bxVo6TQio6E8x1xMA5WHEAhKV//HWVd2Q8OWUKuU5k4/7rVRfHZrkDoyeg2u9qSCQaTualvAVF8YlDyNkxyEjdoEzkQhnll5jzs9Q6wpzpQ4o0a2KCzaL6Nb+UoT9oqKpTrbIQn7oBCgYarAdaJ1EXux8w/j86ryLoA4quQ5YWqtjFcZ1Iqp2ZYWbZxGG2pXVeIP09WWUyhyWavynuOE0d91JrNYKRcUmZ4sxafTiJpTJnGlahYPdBUMLdwXW/tI5ObI57mVShydmNoYbLDVOjI7uM3ZhosH6DkGtl8BFEbE2Z7dXE46YeKI4qOD01Od7tD92hD/vUAf4rIxOpreeSzx3c8hrvXCYkjh2uNGQh4/ttEEJ5wAWfWdeDxNRl2kWkt9td9mLaBNB1omuxUzmfIqwhG5FZ/2jXQUOKVo9L1h7dND9M4NTSYZEBBI3O9sVOkOchsGnrHSenVz4dXpf1a1z0oG+R56SoooQD67nynIcdiW7V1ZMFoXtY/cPLjfahQEd5I3GyBFPstT9AbJOvBpBO+P1gh6Ft4+h5PfBx6NBORt6gJghetU1jQo9sA00HmzxQVXWVH1quwJHKVAWG/gHNH90//hV2J83Kw5vQsi7BRL4/tiEMaqPR3UnIDIHkepcgsjs0bCaDTeceNttNZ+330WGv3NMP257Xa3C9LtZrWd3+tNONBo2l0zx6TOuyqUudAU+G00tdlsDz4xCsOLJ1pHsz9TrIv9o3Y07NDWiVC1aGnv69IRKds27vNpft7etbahlLk3agM5bOmyEP76oQbXh4FkFvWIGfI34htyGeM1hpC+GB1liA/mCDvtpcG3trGJaoqJ2xZRIwfMv8TyToMFry4sbiNi3xwQnnLwz2Wfx1AsZYeo8QLEWcPhtfV1WcRGMl8KmgAb3z5AKu0Wzny09Gr0IrLZSneFg6b7OdSFVCgRfWvgdXxKA2RqZhiYGNnH7PB5o4BffzPhGewtmihGypDArOioib8mKlTCFulysBLS/EApTGfCS3DDvlBIcaGJIxpv5qIHrenHc2bHy5y8YPynu2bZ1oEinIRmSeaPlEyy9Cy293afnRkgCt7W2I84mJT0z8Ikx8tZ+JC1ubJx4+8fCL8HA99Gf3vrZEWtrmKjfMr7SUY3kElTpCUyiDRw1YR0XzhsesduGsfnkvF8phCp7PIVd8L9ouzjgvkaJbkQ0Zl0RVm7xwSYXgwmkt/nhrXQnEd6i/XshdSN82CsX0TRwwEuHRkAAv5pOaltapP0Myx+J10Cd+CGI/zsUz68T8p/Dff+fCGvErpjObXSOJuioc5Oifj2Q8ZP1cQtY96lXqf7hqb4KXCHk8X8Z74lNVoHkxU4UBquO5t++1EXhHzEItUktfefHzh8mJ8O0Lwt6gCzfDeAcZbQiR2nyViJQ3DUE2CMz5wtSauchtCcqMRMRazG9eJj8wLv959eP8+yBaoXuRWhLXuBLKiznbfPb608Vvs+m7j9OP736bnZ6cn16wAZrmz+cjccEehLwH37y4hWv04lbRMmj0UKKIwQtlwiNLS3QiVw6DX6NAVGUWNoDXcpPxmRpCF697xWk0MjmbykTetDeu8nj07ejlDnrslUd3g+4FxAQTBC3Mydbfydl0JE60Yio4WxN68WzeJfLX8+eiKSABuyz6voE/Zingdovp0trrVk9q6agB/znjyXAGh7icM94aR/GKyBOfr8f3LTsKJNHUnWgLrxfhhmWEd3RUaVDhxrZ24a4pFuUlUzBs4EU8m24/HWwOkEvriSXv7zm0z06v1/w4frfges2V5/1o+53jGledTyc3oGt2I3w4eUB280lkK3zF/zgVdnjeCJK2PthkfIsv2auuiZ2ux1o2u9G70wu5Xv8FjDEqJw==
+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.StatusCodes.json b/docs/reference/http-api/get-game-session.StatusCodes.json
index 5d20ab9..c8a51f6 100644
--- a/docs/reference/http-api/get-game-session.StatusCodes.json
+++ b/docs/reference/http-api/get-game-session.StatusCodes.json
@@ -1 +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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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
index f38693f..fd76fc4 100644
--- a/docs/reference/http-api/get-game-session.api.mdx
+++ b/docs/reference/http-api/get-game-session.api.mdx
@@ -5,7 +5,7 @@ description: "getGameSession"
sidebar_label: "getGameSession"
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.StatusCodes.json b/docs/reference/http-api/get-game.StatusCodes.json
index 8e5a1de..76e1659 100644
--- a/docs/reference/http-api/get-game.StatusCodes.json
+++ b/docs/reference/http-api/get-game.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The game summary, never state","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}}},"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
+{"responses":{"200":{"description":"The game summary, never state","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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.api.mdx b/docs/reference/http-api/get-game.api.mdx
index d85031f..c6fcdca 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 44ea26a..6ea1b0c 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/ZXBXmobFGWnRQ90msKxHVttExuVihwMIxySI3EjaofZHcpWBP17MUvKdWL01mN5IXcxO/P2zZvHreGWPIplN6lMZhYk14SN1CYxgotgsjszbNwnJlDZeSsbk93dJ6aiUHrb6lmTmduuaGyZQOewk5qc2BKFKmjsmhyFAGVN5TKFW/Jz9qsAjmEyvgF0FXjCKm6U7OZ20fWAEggMCK+Oj2FF6AKwazYgNQpITfDAfkkebICK2oY3VPW5uBMsGkphIlAxBTg6cixHR2BX7f78xUkScyxwRXDReT0AN8VnKiUkwB70DoCeoGTvqZRm84SNqhSm5NdUQe54FIQ95SlMcU4gDCU2DTxYqbkTQBBekjsFhAKrfqGI7cKxpwo8Sk1eMTnwpOWpSk1iPIWWXaBgsq15dXysr2/pnv07A4H82rqFSUzJTsiJnsa2bbQjlt34c9AUWxPKmlaoX7JpyWSGIwMmMa1XWYjtAQRB6cKzuCBeC+x2ivRLZz1VKpQh7j4xYqXRwEE6O30SsyKpeVCZFkGpTWbG9V5we3lNFVdfem49FRjoWfFapNXgGGQyUxB68iYZPt6xX6GYzPz2cWa+F+kZvBsSwuSib0cCgZwABsjPOqnZ26+RpQzexnzwOoa9yeGAPeS/xtUvObCDj1RMuVySQNcuPFYUDlOzS0zBcr3C8hlmbO3vtDGJsYqiJqwiYofxBpd2QW40tQuH0nl6idoBPQp5hw0ULD8EuH5/dg5hfwB4HUVEQI9YCmhPKAgUXG0SKLhzKr0YkGOpSXOoeIXWpdBzDfn6JHmtvPz805v8NIa25EcFCyxpoxLLtebB25vZp+nk6sPkw9Wn6eX5n5czLSCT6jBPQTVJbmEdRWwBHnBJIQ5DzBh02vrLg3Vxi6P+K6szZtmlUVPWzTmSN6go8jNxQl7Rrwku+yJntxOTmDX50PN0nP6YnrxgT1HpSJAfYd9gwZglDj89pUrhvLEqBXUQCnCQj7G14z5gfJQfwqB1wJcqOh3o77sUeXugomZe7vMULOOB/EPlU+kcfWOVUTstB1lhHM9BHX/sDbT1XLwQx/afIf/fgv9LCx4mV+hRxm2D1ml3Ot8o5b1z3Zn66c9YcxDd2W5VFn/5ZrfT7S8d+eFvuUZv9Y662iV7D8jutmZJGx3ysqRWbXGNTdd7xneOvbt/ZqFXlzOz2/0Nt3Wt3w==
+api: eJztVU1v20YQ/SuDvdQWKEoJgh7oNIVjO7b6ERuVihwMIxySY3EjaofZHcpWBf33YpaU68TorcfyQu5idubtmzePO8MteRTLblaZzCxJrggbqU1iBJfBZLdm2LhLTKCy81a2Jru9S0xFofS21bMmMzdd0dgygc5hJzU5sSUKVdDYDTkKAcqaylUKN+Tv2a8DOIbZ5BrQVeAJq7hRsru3y64HlEBgQHg9ncKa0AVg12xBahSQmuCB/Yo82AAVtQ1vqepzcSdYNJTCTKBiCjAaOZbRCOy6PZw/f5XEHEtcE5x3Xg/AdfGFSgkJsAe9A6AnKNl7KqXZPmGjKoU5+Q1VkDseB2FPeQpzvCcQhhKbBh6s1NwJIAivyJ0AQoFVv1DEdunYUwUepSavmBx40vJUpSYxnkLLLlAw2c68nk719S3di39nIJDfWLc0iSnZCTnR09i2jXbEspt8CZpiZ0JZ0xr1S7YtmcxwZMAkpvUqC7E9gCAoXXgWF8Rrgf1ekX7trKdKhTLE3SVGrDQaOEhnr09i1iQ1DyrTIii1ycykPgjuIK+54upL31tPBQZ6VrwWaTU4BpnMFISevEmGjw/s1ygmM798WpjvRXoKH4aEMDvv25FAICeAAfLTTmr29q/IUgbvYz54G8Pe5XDEHvKf4+qnHNjBJyrmXK5IoGuXHisKx6nZJ6ZguVpj+QwztvZX2prEWEVRE1YRscN4gwu7JDee26VD6Ty9RO2AHoW8wwYKlh8CXP1+egbhcAB4E0VEQI9YCmhPKAgUXG0TKLhzKr0YkGOpSXOoeI3WpdBzDfnmVfJWefnxzbv8JIa25McFC6xoqxLLtebR++vF5/ns8uPs4+Xn+cXZHxcLLSCz6jhPQTVJbmkdRWwBHnBFIQ5DzBh02vrLg3Vxi6P+K6szZtmlUVPW3XMkb1BR5GfmhLyi3xBc9EVOb2YmMRvyoedpmr5Jpy/YU1Q6EuTH2DdYMGaJw09PqVI4a6xKQR2EAhzlE2ztpA+YjPJjGLQO+FJFJwP9fZcibw9U1MyrQ56CZTKQf6x8Kp3jb6wyaqflIGuM4zmo47eDgbaeixfi2P0z5P9b8H9pwcPkCj3KpG3QOu1O5xulvHeuW1M//RlrDqI7u53K4k/f7Pe6/bUjP/wtN+it3lFX++TgAdntzqxoq0NeltSqLW6w6XrP+M6x93fPLPTyYmH2+78Bt3et3w==
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.ParamsDetails.json b/docs/reference/http-api/get-lobby.ParamsDetails.json
index 0c00935..7c00d0e 100644
--- a/docs/reference/http-api/get-lobby.ParamsDetails.json
+++ b/docs/reference/http-api/get-lobby.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"]},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-lobby.StatusCodes.json b/docs/reference/http-api/get-lobby.StatusCodes.json
index a706ae2..f8b3b4e 100644
--- a/docs/reference/http-api/get-lobby.StatusCodes.json
+++ b/docs/reference/http-api/get-lobby.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Public joinable games, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}},"required":["games"],"title":"Lobby"}}}},"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
+{"responses":{"200":{"description":"Public joinable games, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}},"nextCursor":{"type":["string","null"],"description":"Pass as `cursor` to fetch the next page. Null when there are no more results."}},"required":["games","nextCursor"],"title":"Lobby"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-lobby.api.mdx b/docs/reference/http-api/get-lobby.api.mdx
index 78c00ba..4f7a12b 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.ParamsDetails.json b/docs/reference/http-api/get-my-games.ParamsDetails.json
index 8513877..23ea1a6 100644
--- a/docs/reference/http-api/get-my-games.ParamsDetails.json
+++ b/docs/reference/http-api/get-my-games.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"string","enum":["active","finished"],"default":"active"},"required":false,"name":"bucket","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"]},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"string","enum":["active","finished"],"default":"active"},"required":false,"name":"bucket","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-my-games.StatusCodes.json b/docs/reference/http-api/get-my-games.StatusCodes.json
index 84ccde0..1c7d830 100644
--- a/docs/reference/http-api/get-my-games.StatusCodes.json
+++ b/docs/reference/http-api/get-my-games.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The caller's games in the requested bucket","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}},"required":["games"],"title":"MyGames"}}}},"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
+{"responses":{"200":{"description":"The caller's games in the requested bucket","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}},"nextCursor":{"type":["string","null"],"description":"Pass as `cursor` to fetch the next page. Null when there are no more results."}},"required":["games","nextCursor"],"title":"MyGames"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-my-games.api.mdx b/docs/reference/http-api/get-my-games.api.mdx
index 68e6c8b..63e765c 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.ParamsDetails.json b/docs/reference/http-api/get-my-rating-history.ParamsDetails.json
index 44163ef..a9c805f 100644
--- a/docs/reference/http-api/get-my-rating-history.ParamsDetails.json
+++ b/docs/reference/http-api/get-my-rating-history.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"string"},"required":false,"name":"pool","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"pool","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-my-rating-history.StatusCodes.json b/docs/reference/http-api/get-my-rating-history.StatusCodes.json
index 41f41b3..02e7a83 100644
--- a/docs/reference/http-api/get-my-rating-history.StatusCodes.json
+++ b/docs/reference/http-api/get-my-rating-history.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The caller's rating log, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"history":{"type":"array","items":{"type":"object","properties":{"gameId":{"type":"string"},"pool":{"type":"string"},"displayBefore":{"type":"integer"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"},"createdAt":{"type":"integer"}},"required":["gameId","pool","displayBefore","displayAfter","displayChange","createdAt"],"title":"RatingHistoryEntry"}}},"required":["history"],"title":"RatingHistory"}}}},"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
+{"responses":{"200":{"description":"The caller's rating log, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"history":{"type":"array","items":{"type":"object","properties":{"gameId":{"type":"string"},"pool":{"type":"string"},"displayBefore":{"type":"integer"},"displayAfter":{"type":"integer"},"displayChange":{"type":"integer"},"createdAt":{"type":"integer"}},"required":["gameId","pool","displayBefore","displayAfter","displayChange","createdAt"],"title":"RatingHistoryEntry"}}},"required":["history"],"title":"RatingHistory"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-my-rating-history.api.mdx b/docs/reference/http-api/get-my-rating-history.api.mdx
index 335b657..6f5d279 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: eJztWFFzGjcQ/isavSTunMFO0z6QNB1CiUMaJx6bTB48TFjuljvFOuki7YGvHv57ZyUObCDpSydPfoKTVrur7/t2Ye9O2godkLJmlMmezJHOm0sgZfK3ypN1jUwkQe5l71qeo5wksgIHJRI6XruTPi2wBNm7k9RUKHvSk1Mml6tEOvxWK4eZ7M1Be0ykgZItKmu1TKQysie/1egauUoOOFKGMEcnE1kqo8q6lL3TRJZwG7//dpLIDOdQa5K9Zyc/iKdVqWgn4ITNfWWNR88xn52c8EeGPnWqYjxkT44LFCloje6JFy6gIrTNE2FwiZ7EXDnPjlNrCA2xA6gqrdIAaPerZy8HbmZnXzHlg5Vj+EnFHIo14ltDcA6YAUVY+v92kEOJTOMBLgLmhzYy5SsNzWucW4cH0N+a9OeE7ocWgwJM/h0nqUMgzPp0aPsBedftPZJWKQ9z3EloN/r9UJNEkiLNsR6IemiIRbAbtyXge8f4xCqRzw9pZWQWoFUm2B/+n6pA56w7SF1qM9zfSCQaro9raSz1U1ILxsRYukTIWEx4W4ULh8ULNFk85QkIP1UZQxeKJdznAhptISxojTnocxv81ebG2KU54woLjt5ZZWCm+Ynpe1NrZg6046i8uYkIjlSqKjAUFwZMl3UtcdYNwBhL7xFCpIjTJ+PrqrIuJld7dFzca9DvrYzhBo1M5NwpNJn/aDRf2WGuPMU+d9kSnkhVQo5ja9+Dy+OlNkFGYYuBTaQDwvfcQzBjaTzkvS888b1FCWmhDApmRagMDal5wx1jWTQCWl2IOSiNWUduJTZkggfM5a4eI/WTHdPLdd/aqPF0X43nynuObZ1YEynIRmQeZfkoy58iy1/3ZfnBkgCt7TLc81GJj0r8KUp8fliJc1ubRx0+6vCn6HC1m8/BUatEKux6EGOBARWyJ7tQqS6aXBnsltiNk8hxsTnlMa2doiYMZHPlcAYeZe96wmNOu3nF9ESlbk02miyIqpZDfp4huPDnOn55Y10JJHvy3eex3Ef2zdqhGP0V/2ckwqMhAV5M+zUV1ql/Aqc98Tr4Ey+D2aupeGqdmP4Znv6YCmvEZ5xd2fQGSdRV7iBDf9ThIppZeltCen86qtTf2LSDXYGQhYzXU99Q5WiOr1RugOo4NjzM2gi8JRajFjNLT7x4e94fCN8eEHaBTlCBAm8hpY0uZjZrEjHj3iHIBoMppOx0KjJbgjIdEbEW08Vp8pJx+f35q+mLYFqhO55ZEjfYCOXFlGM+ff1x/OVqdPZh9OHsy9VwcDkccwAaZUfTjuAhNHIfcvNiCTfoxVJRETx6KFHEywtlwpKlAp3IlMOQVyfoVZm5DeC1EmV8RobQQeg9YhiD9C9GMpELdD7idNL5tXO6hx5n5dEt0B1DJJggeOGe0ubbvxh1xEArloKzNaEXT6f3xfzL9Eis60jAvoperOGPLAXcljgrrL1p/cwsddfgHzGeDGdIiKs65Q7ZidOvpxJCN1+rI0cS542I9Se2BfjglhulEd5St9KgDHurXRilY3FeswxDL+cbhRKOneh+iU4SWVhPbH13x1f85PRqxcvxdQTXbaY8t6ft24sbbLYvSxaga84kvCr5jmn7nmNrO+EHp0K753aQtFXCAeOhfppidf/U3k8ge9n0pbPhWK5W/wKCpVsF
+api: eJztWFFz2jgQ/isavbS5cSDp5e7B7fWGcjSll7SZhE4fMkxZ7MVWsSVXWkN8Gf77zUoYCKG9l5vpS57A8mp39X3fLqzupanQAimjh6mMZYZ02VwDKZ29U46MbWQkCTIn41t5iXIcyQoslEhoee1euiTHEmR8L6mpUMbSkVU6k5Eslb5AnVEu49NVJC1+q5XFVMYzKBxGUkPJ9pUxhYyk0jKW32q0jVxFB9wqTZihDX5VWZcyPo1kCXfh+28nkUxxBnVBMn5x8oN4hSoV7QUcs7mrjHboOOaLkxP+SNElVlWMjozlKEeRQFGgfeaE9RiJwmSR0LhER2KmrGPHidGEmtgBVFWhEg9v96tjLwdOZqZfMeGNlWUySIUc8jX+W0OwFpgPRVi6/3aQQYlM6j4zqyhgfuhFqlxVQPMGZ8biAfS3Jr0Zof2hRT8HnX3HSWIRCNMeHXr9gLzb9hxRq5SHOe4ltB99N9Q4kqSo4FgPJD7QxCLYj9sS8L1tvGMVybNDWhnqBRQqFewP/09VoLXGHqQuMSkeKkPUXB+3UhvqJaQWjIk2dI2QspjwrvIH9otXqNOwyxEQfqpShs4Xiz/PFTSFAb9QFJhBcWm8v1rPtVnqc64w7+i9URqmBT8xfW/rgpmDwnJUfrmJCJZUoirQFBb6TJexLXHG9kFrQxcIPlLA6ZN2dVUZG5KrHVou7jXoOysjmKOWkZxZhTp1H3XBR7aYKUeh6123hEdSlZDhyJgLsFk41CbI0L9iYCNpgfCCe8guMP3aOmNZKg910BOOGAdRQpIrjYJZEipFTWrWcAdZ5o2AVidiBqrAtCO3khsw4X3mdl+fQQrjPdPrdR/bqPP0sTovlXMc21ixzl+QCUg9yfRJpj9Fpr8+lukHQwKKwiz9EZ6U+aTMn6LMs8PKnJlaP+nySZc/RZer/XwODm4lUm7WYx0LDngWk12oVBd1pjR2S+yGSeY43+xymNRWUePHu5myOAWHMr4d85jUvrxhuoJytyYbjeZEVcspP08RrP9zHr68NbYEkrF8/3kkHyP7du1QDP8K/0si4VCTACcmvZpyY9U/nuNYvPH+xCtv9noinhsrJn/6pz8mwmjxGac3JpkjibrKLKTojjpcVFND70pIdqerSv2NTTsY5gipz3g9NQ5Uhvr4RmUaqA5jx8OstcA7YnEWYmromRPvLnt94doNwizQCspR4B0ktNHF1KRNJKbcSwQZbzCBhJ1ORGpKULojAtZisjiNXjEuv5+9nrz0phXa46khMcdGKCcmHPP5m4+jLzfD8w/DD+dfbgb968GIA9AwPZp0BA+xgXufmxNLmKMTS0W59+igRBEOL5T2S4ZytCJVFn1eHa9XpWfGg9dKlPEZakILvheJQQjSuxrKSC7QuoDTSeesc/IIPc7KoV2gPYZAMIH3wj2mzbd3NeyIfqFYCtbUhE48n+yK+ZfJkVjXkYDHKnq5hj+w5HFb4jQ3Zt76mRrqrsE/YjwZTp8QV3XCHbMTpmdHJfjuvlZHhiQuGxHqT2wL8MEpN0ojvKNuVYDS7K22fhQPxXnLMvS9nU/kSzh0pt0SHUcyN47Y+v6ej/jJFqsVL4frDK7bVDluT9vbjzk228uWBRQ1Z+KvWr5j2t6TbG3H/GCVb//cDqK2Sjhg2NRLEqx2dz36SWQvm750PhjJ1epf7fJ22g==
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.StatusCodes.json b/docs/reference/http-api/get-my-ratings.StatusCodes.json
index 2dd139d..3dd0fe5 100644
--- a/docs/reference/http-api/get-my-ratings.StatusCodes.json
+++ b/docs/reference/http-api/get-my-ratings.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The caller's current rating per pool","content":{"application/json":{"schema":{"type":"object","properties":{"ratings":{"type":"array","items":{"type":"object","properties":{"pool":{"type":"string"},"mu":{"type":"number"},"sigma":{"type":"number"},"displayRating":{"type":"integer"},"updatedAt":{"type":"integer"}},"required":["pool","mu","sigma","displayRating","updatedAt"],"title":"Rating"}}},"required":["ratings"],"title":"Ratings"}}}},"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
+{"responses":{"200":{"description":"The caller's current rating per pool","content":{"application/json":{"schema":{"type":"object","properties":{"ratings":{"type":"array","items":{"type":"object","properties":{"pool":{"type":"string"},"mu":{"type":"number"},"sigma":{"type":"number"},"displayRating":{"type":"integer"},"updatedAt":{"type":"integer"}},"required":["pool","mu","sigma","displayRating","updatedAt"],"title":"Rating"}}},"required":["ratings"],"title":"Ratings"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-my-ratings.api.mdx b/docs/reference/http-api/get-my-ratings.api.mdx
index 340bacf..06037da 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: eJztV99P20gQ/ldG+9JyMgm9ontIez2lHKVpoUUQ1AcUNWN7sLexd93dcSCH8r+fZtdJaIJ0LyeeeMLeHc+P7/tmwtwr25BD1taMcjVQBfHZ4gJZm8KrRDEWXg2u1RmpSaIc+cYaT14N7tXvBwfyJyefOd2IAzVQ45Igw6oi98JD1jpHhsEFd9CQg8baSiUqs4bJsHyPTVPpLCTQ/+HFyb3yWUk1yhMvGlIDZdMflLFKVOMkXdYxBdfluTFE53ChEqWZav/fDkI6GyvPTptCLRNVtw+OTVun5OTY6+KXvDY3ufZNhR1yDyy0YSqiSdvkyJQP+bHrpaD7s9WOcsG7w6lu1SrodoiH/iaJYs2VOOxul9sOV1DtmHqxXSbq8DE6R2aOlc5BPJHn/485cs66R5HPbE67F4ki09ZSiLE8zFjPSSXyfEGYC+F014RSw+E5mTx+5RmZriJQIotYzzkuKovhoKqowOrMBn+tmRl7a06w7rx/stpgWslbgTV9aCthBSsnUeVyHREd60w3aDgeHDlCtk4Qi09HaIzlU8IQKeJ0ZXzbNNbF5FpPzmBNHegPTsY4I6MSdeM0mdx/NZWU7KjQnmPvXqyoTpSusaCxtafoiljUOsgoXAmwiQiCTnWtJfYk2eJ9CJ6lbqgxK7UhEFZA52RY3yykmW/LBeBKF3CDuqK8pzbiOhaCj4TLbSVG6idbphfdaFmr8dWuGs+09xLbOuiIBLYRmWdZPsvySWT5eleWXywDVpW9DXU+K/FZiU+ixMPHlXhjW/Osw2cdPokOl9v5bK0PNXFpu7VCpIVcqoHqY6P7ZAptqF9T363NPWWt07xQg+t7daMdpehJDa4ny8nm8lIYieLcmKxlWDI3K9rkPSV0JOzGhw/W1chqoD59G6tdMD90DmH0d/zXIgEvGwx6mA5bLq3T/wQaB/A++IO3wezdFF5aB9O/wtufU7AGvlF6abMZMbRN4TAnv9eTvkktf6wxe7i0NPozha1FsigJ85CxCEpQ1wWZ/UtdGOTW0W7WBuiORX8VpJZfePh4NjwCv/oA7JwccElAd5jxWgqpzRcJpDIugG0wmGImTqeQ2xq16UHEGqbzV8lbweWPw3fTN8G0IbefWoYZLUB7mErMl++/jr9fjk6+jL6cfL88Pro4HksAHuV70x7IahhJD7l5uMUZebjVXAaPHmuCWDxoE44sl+Qg145CXr0gUW1ubABvpUrBZ2SYHIZxA8cxyPB8pBI1J+cjTge9171XO+hJVp7cnNw+RoIZgxcZI6t8h+ejHhxVOiyztmXy8HL6UMW/Tfegax3AXRW96eCPLAXcbiktrZ2t/KSW+x34e4KnwBkSkkbOZCgG7TTWc41hgHfqKIjhbAGblvulvLXEmO6431SoTdhEXdh6Yztei/7C3JZSQtPGqbPaF0vrWczu76WoK1ctl3L8syUnnTpJ1BydDtNXWjVZKViaeEYLkWiWUSMDYI5VGxW/9YskDb4eFifHY7Vc/gu2dMxH
+api: eJztl1Fv2zgMx78KoZetBzfp7op7yHY7ZLmuy67ZijbDHopioW3W1mJLnkSnzRX57gdKTtImBe7lgL30qbZEU9SfPzLlvbINOWRtzThXA1UQT5YXyNoUXiWKsfBqcKUmpK4T5cg31njyanCvfj06kj85+czpRhyogZqWBBlWFbkXHrLWOTIMLriDhhw01lYqUZk1TIble2yaSmchgP53L07ulc9KqlGeeNmQGiibfqeMVaIaJ+GyjiG4Ls6tITqHS5UozVT7/3YQwtlaeXbaFGqVqLp9sGzaOiUny14Xj+La7uTaNxV2yj2w0IapiCZtkyNTPuSntlei7o9WO8pF706nulXrQ3ePeOjvOlGsuRKH3e5q1+Faqj1TL7arRB0/lc6xWWClcxBP5Pn/yxw5Z92Tymc2p/2NRJFpa7mIsTzMWC9IJfJ8QZhLwumuCVcNi+dk8viVZ2T6EoUSLOJ9znFZWQwLVUUFVhMb/LVmbuytOcW68/7RaoNpJW8F1vS+rSQrWDk5VTY3J6JjnekGDceFkSNk60Sx+DRCYyyfEYaTok5fjG+bxroYXOvJGaypE/3ByhTnZFSibpwmk/vPppIrOyq051i7F+tUJ0rXWNDU2jN0RbzU5pBx2BJhEwGCznStHwkzap23TiB5zMEQPIsOUGNWakMgWQKdk2F9s5Tivi2XgGtO4AZ1RXlPbWE7kYSPJLe7ZEYUrndML7pWs6Hz1T6dE+29nG0ddPED26jUM6bPmP4UTH/bx/STZcCqsrfhCs9kPpP5U8g8fprMG9uaZy6fufwpXK5249kZP2ri0nZjiaCGXKqB6mOj+2QKbahfU99tzD1lrdO8VIOre3WjHaXoSQ2urlfX281LyVCEdWuywbJkbtZplPeU0JFkOz68t65GVgP18etU7Yv5vnMI47/ivyIJeJmA0MNs2HJpnf4npHUA74I/eBPM3s7gpXUw+zO8/TEDa+ArpZc2mxND2xQOc/IHPamj1PKHGrOHQ0+j/6Yw9UgUJWEeIhbARHVdkDm81IVBbh3tR22A7lh4rCC1/MLDh8lwBH79AdgFOeCSgO4w4w0Kqc2XCaTSPoBtMJhhJk5nkNsatelB1Bpmi1fJG9Hl9+O3s9fBtCF3mFqGOS1Be5jJmS/ffZ5+uxyffhp/Ov12eTK6OJnKATzOD2Y9kNEyJj3E5uEW5+ThVnMZPHqsCeLlQZuwZLkkB7l2FOLqBUS1ubFBvDWVos/YMDkM7QdO4iHD87FK1IKcjzod9Y57R3vqSVSe3ILcIcYEMwYv0lbW8Q7Pxz0YVToMw7Zl8vBy9pDiX2YH0JUO4D5Frzv5Y5aCbreUltbO135Sy/1O/APRU+QMAUkhZ9IkAzuN9VxjaOgdHQUxTJawLblH19sgxnTH/aZCbcIk68LUHMvxSvgLfVyuEoo2dqH1vFlaz2J2fy+X+uKq1UqWf7TkpFKvE7VAp0M3llJN1gRLEc9pKYhmGTXSABZYtZH4nV8oKfBNszg9marV6l9hfeOb
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.ParamsDetails.json b/docs/reference/http-api/get-player-games.ParamsDetails.json
index e72fd52..017c4bc 100644
--- a/docs/reference/http-api/get-player-games.ParamsDetails.json
+++ b/docs/reference/http-api/get-player-games.ParamsDetails.json
@@ -1 +1 @@
-{"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"playerId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"]},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
+{"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"playerId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"}]}
\ No newline at end of file
diff --git a/docs/reference/http-api/get-player-games.StatusCodes.json b/docs/reference/http-api/get-player-games.StatusCodes.json
index 3001462..e05fcdd 100644
--- a/docs/reference/http-api/get-player-games.StatusCodes.json
+++ b/docs/reference/http-api/get-player-games.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"That player's finished public games, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}}},"required":["games"],"title":"PlayerGames"}}}},"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
+{"responses":{"200":{"description":"That player's finished public games, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"games":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"createdBy":{"type":["string","null"]},"status":{"type":"string","enum":["waiting","ready","active","finished","aborted"],"title":"GameStatus"},"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"},"shortCode":{"type":"string"},"pendingPlayers":{"type":["array","null"],"items":{"type":"integer"}},"turnDeadline":{"type":["integer","null"]},"outcomes":{"type":["array","null"],"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"}},"finishedAt":{"type":["integer","null"]},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"participants":{"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":["id","createdBy","status","access","schemaVersion","config","turnSeconds","budgetSeconds","incrementSeconds","rated","ratingPool","minPlayers","maxPlayers","shortCode","pendingPlayers","turnDeadline","outcomes","finishedAt","createdAt","updatedAt","participants"],"title":"GameSummary"}},"nextCursor":{"type":["string","null"],"description":"Pass as `cursor` to fetch the next page. Null when there are no more results."}},"required":["games","nextCursor"],"title":"PlayerGames"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-player-games.api.mdx b/docs/reference/http-api/get-player-games.api.mdx
index 8d3c1eb..3101458 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.StatusCodes.json b/docs/reference/http-api/get-player-ratings.StatusCodes.json
index ba18e87..38e46bd 100644
--- a/docs/reference/http-api/get-player-ratings.StatusCodes.json
+++ b/docs/reference/http-api/get-player-ratings.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"That player's current rating per pool","content":{"application/json":{"schema":{"type":"object","properties":{"ratings":{"type":"array","items":{"type":"object","properties":{"pool":{"type":"string"},"mu":{"type":"number"},"sigma":{"type":"number"},"displayRating":{"type":"integer"},"updatedAt":{"type":"integer"}},"required":["pool","mu","sigma","displayRating","updatedAt"],"title":"Rating"}}},"required":["ratings"],"title":"Ratings"}}}},"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
+{"responses":{"200":{"description":"That player's current rating per pool","content":{"application/json":{"schema":{"type":"object","properties":{"ratings":{"type":"array","items":{"type":"object","properties":{"pool":{"type":"string"},"mu":{"type":"number"},"sigma":{"type":"number"},"displayRating":{"type":"integer"},"updatedAt":{"type":"integer"}},"required":["pool","mu","sigma","displayRating","updatedAt"],"title":"Rating"}}},"required":["ratings"],"title":"Ratings"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-player-ratings.api.mdx b/docs/reference/http-api/get-player-ratings.api.mdx
index 0f52391..884823b 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: eJztWE1v2zgQ/SsDXposVLvZFntQu1242TR1m7ZB4qKHwKjH0lhiI5EqOXLiDfzfF0NKjhsb2Muip5wsksP5ePNm5NGdsg05ZG3NOFepKojPK1yRu0DWpvAqUYyFV+mVivteTRPVoMOaWFbp1Z3yWUk1qvRO8aohlSrPTptCJarW5oxMwaVKj9aJcvSj1Y5ylbJrKVEGaxFvguZxrhKljayRS7WeirxvrPHkRffvz57JT04+c7oRj1WqJiUyxPtPPGStc2QYXHAeGnLQWFupRGXWMBkWBdg0lc5CyMPvXrTsicDOv1PGKlGNE4BYRx9ch8q9IDqHK3Gcqfb/rSC4swPUOlF1u7Vt2npOTra9Ln7y6/4k117ijnnaktCGqYgibZMjUz7ifcc/peNKdTjVreqNPjSxrW+aKNZcicLudP1QYQ/VjqgX2XWiXuzL59gssdI5iCby/P9ljpyzbi/ymc1pH3fJtLUEYiyPMtZLUok8XxDmknC6bUKoYfOcTB5veUamLxGowOcQzzmuKotho6qowOqjDfpac23sjTmVOgiK3lttcF7JqsCa3raVZAUrJ1blcGMRHetMN2g4bhw7QrZOEItPx2iM5TPCYCni9MX4tmmsi861npyUYAf61s4Er8moRC2cJpP7z6aSkB0V2nPsFhd9qhOlayxoYu0ZuiIGtTEyDkcCbCKEoDNda7E9TR7kfQSeJW6oMSu1IZCsgM7JsF6spJhvyhVgzwtYoK4oH6h7cp1Igo8llw+ZGFM/fSB60fWWDRuPdtn4UXsvtq2DLpHANiLzSMtHWv4SWj7fpeUny4BVZW9CnI9MfGTiL2Hii/1MXNjWPPLwkYe/hIfrh/7sGVhq4tJ2w4zQS6aJVA2x0UMyhTY0jAODH971k8d66DbXPWWt07wKo81CO5qjJ5VeTWUi6Q8vJUuRsPciG2qWzE2fSlnPCR1JxuPDW+tqZJWq918nahfgt51CGP8d/24k4GWqQQ+zUculdfqfkNoU3gR98CqIvZ7BgXUw+yus/pyBNfCV5pc2uyaGtikc5uQPB1JLc8vvasy2B5lGf6BVP4KVhHnwuBvRTnRB5umlLgxy62jXawN0y8LJCuaWn3h493F0DL6/AHZJDrgkoFvMeEOPuc1XCcylhQDbIDDDTJTOILc1ajOAiDXMlkfJK8HljxevZy+DaEPu6dwyXNMKtIeZ2Dx483ny7XJ8+mn86fTb5cnxxclEDPA4P5wNYCIeBBIE3zzc4DV5uNFcBo0ea4IYPGgTtiyX5CDXjoJfg0BbbRY2gNczVfAZGyaHoQXBSTQyOh+rRC3J+YjTs8HzwdEOeuKVJ7ck9xRjghmDFmktvb+j8/EAjisdBlzbMnk4mG2z+rfZIXTlBLjLopcd/DFLAbcbmpfWXvd65paHHfiHgqfAGRyS4s6kUQbuNNZzjaGpd+woiCFWIdyX4U8hbmjGdMtSf9qECdWFaTiW6JVwMPRzCUcqt/vikKh06xPB1mBZWs9y7+5OIv3iqvVatn+05KR8p4laotOhTUsx59rLc67SBVaedlzcvMHUQd81D0E61z7X+7IxUjNLrFpZqURd02r7k8Z6uk76ahIf4vEoy6jhrYs7b0xpNptGdnoyUev1v8b0K1U=
+api: eJztWN9v2zYQ/lcOfGkyKHa6BXtQuw6ul6bu0jZIXPQhMOqzdJbYSKRKnpx4gf/34UjLcWIDexnQlzxZJI/347vvTj7dK9uQQ9bWjHKVqoL4osIluUtkbQqvEsVYeJVeq7jv1SRRDTqsiWWVXt8rn5VUo0rvFS8bUqny7LQpVKJqbc7JFFyq9OUqUY5+tNpRrlJ2LSXKYC3iTdA8ylWitJE1cqlWE5H3jTWevOj+9fhYfnLymdONeKxSNS6RId5/4SFrnSPD4ILz0JCDxtpKJSqzhsmwKMCmqXQWQu5/96JlTwR29p0yVolqnADEOvrg1qg8CKJzuBTHmWr/3wqCOztArRJVt1vbpq1n5GTb6+KRXw8nufYSd8zTloQ2TEUUaZscmfIB7zt+lI5rtcapblVn9KmJbX2TRLHmShSuT1dPFXZQ7Yh6kV0l6mRfPkdmgZXOQTSR5/8vc+ScdXuRz2xO+7hLpq0lEGN5kLFekErk+ZIwl4TTXRNCDZsXZPJ4yzMyfYlABT6HeC5wWVkMG1VFBVYfbdDXmhtjb82Z1EFQ9MFqg7NKVgXW9K6tJCtYObEqhxuL6FhnukHDcWPoCNk6QSw+DdEYy+eEwVLE6YvxbdNYF51rPTkpwTXoWztjvCGjEjV3mkzuP5tKQnZUaM+xW1x2qU6UrrGgsbXn6IoY1MbIKBwJsIkQgs51rR8BM2ydt05I8pgHA/AsOECNWakNgWQJdE6G9XwpxX1bLgE7nsAcdUV5Tz2Q7VQSPpTcPmVmpMLkiejlutds2Plyl50ftfdi2zpY+w9sI1LPNH2m6U+h6W+7NP1kGbCq7G0I4ZmZz8z8Kcw82c/MuW3NMy+feflTeLl66s+egacmLu16GBK6yTSSqj42uk+m0Ib6ceDw/ftucln13ea6p6x1mpdhNJprRzP0pNLriUw03eGVZC0S+EFkQ9WSuelSK+sZoSNhQHx4Z12NrFL14etY7QL8bq0QRn/FvycJeJmK0MN00HJpnf4npDqFt0EfvA5ib6ZwYB1M/wyrP6ZgDXyl2ZXNboihbQqHOfnDntTWzPL7GrPtQajRf9OyG+FKwjx4vB7xTnVB5uhKFwa5dbTrtQG6Y+FoBTPLLzy8/zgYgu8ugF2QAy4J6A4z3tBjZvNlAjNpKcA2CEwxE6VTyG2N2vQgYg3TxcvkteDy+8mb6asg2pA7mlmGG1qC9jAVmwdvP4+/XY3OPo0+nX27Oh1eno7FAI/yw2kPxuJBIEHwzcMt3pCHW81l0OixJojBgzZhy3JJDnLtKPjVC7TVZm4DeB1TBZ+RYXIYWhKcRiODi5FK1IKcjzgd9056xzvoiVee3ILcEcYEMwYt0mo6fwcXox4MKx0GZNsyeTiYbrP6l+khrMsJcJdFr9bwxywF3G5pVlp70+mZWe6vwT8UPAXO4JAUdyaNM3CnsZ5rDE1+zY6CGGIVwkMZPgpxQzOmO5b60yZMuC5M07FEr4WDob9LOFK56y8WiUq3PjFsDaal9Sz37u8l0i+uWq1k+0dLTsp3kqgFOh3athRzrr085yqdY+Vpx8XNG00ddF30EKRz7XO9KxsjNbPAqpWVStQNLbc/iawmq6SrJvEhHg+yjBreurjzBpVms2lkZ6djtVr9C+VlQqk=
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.StatusCodes.json b/docs/reference/http-api/get-players.StatusCodes.json
index 1a4a551..7f51bfb 100644
--- a/docs/reference/http-api/get-players.StatusCodes.json
+++ b/docs/reference/http-api/get-players.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Public identity for up to 50 comma-separated user ids","content":{"application/json":{"schema":{"type":"object","properties":{"players":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"}}},"required":["players"],"title":"Players"}}}},"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
+{"responses":{"200":{"description":"Public identity for up to 50 comma-separated user ids","content":{"application/json":{"schema":{"type":"object","properties":{"players":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"}}},"required":["players"],"title":"Players"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-players.api.mdx b/docs/reference/http-api/get-players.api.mdx
index fe513c0..582cb8f 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/Ss7uNTu0LLdpD0oaTqK6zhKbcdjy5ODRxOtyBWFiAQYYCmb9ei/dxYQJdlSp5dOTj5JBJb78d7DkstHZStyyNqafqa6Kie+KrAh51WiGHOvuneqXRkmqkKHJbFcde8elU+nVKLqPipuKlJd5dlpk6tEldqck8l5qrrHi0Q5+l5rR5nqsqspUQZLMdeZxNFGddX3mlyjFkOx9ZU1nrz4/eXoSH4y8qnTleSpuuqqHhc6BZ2RYc0NTKyDugK28OsRpLYs8cCTpMqUQe3JQQyUWsNkWBxiVRU6DYUffvPidUc1dvyNUlaJqpzAxDrmVC3xWBuic9hIJUyl/28HOtuGbJEoyTQCs2Mz017iXv7bPs6R0d26Yr17t6bD1EWhhotEad8z1jSlrTfzHFtbEBq1eELVnSS6kdbTJDZDPvU7TBRrLsRxlI5aPHdcrSX11NSL7SJRr3fx3jdzLHQG4ok8/3+MknPW7YQ1tdkOvBNFpi6lEGO5l7KeCx7G8jVhJkKghyqUGhavyGTxLs/IdFtlIswg/FDPFTaFxbBQFJRjcWGDv9rMjL03ZxFtY/mT1QbHhVzlWNIHITVRWDiJKpuriOhYp7pCw3HhxBGydYJY/HeCxlg+JwyRIk63xtdVZV1MrqV9CfrGygBnZFSiJk6TyfxnU0jJjnLtOfaS65bqROkScxpYe44uj0WtgvTDlgCbKDmr57rUEnuYPOO9B56lbigxnWpDIKwsj/+k0SaH+2kD2OoCJqgLyjpqLa5TIfhEuHyuxEj98Jnp9bIHrdR4vK3GC+29xLYOlkQC24jMiyxfZPlDZPlqW5aXlgGLwt6HOl+U+KLEH6LE17uVOLG1edHhiw5/iA4Xz/N5Ms6UxFO7HHJEWCjDiTrESh+SybWhw2pl6ymtneYmTDkT7WiMXt6ohzKgtJs3QkbU5dpkpcApc9UyFt6xCR0JsfHPB+tKZNVVn74M1DaOH5YOof9nfKtIwJNhQA+jXs1T6/TfgcEuvA/+4G0wezeCPetg9Ee4+n0E1sAXGt/YdEYMdZU7zMjvd+TIjC1/LDHdnGMq/Rc17Ug2JcxCxstp7VTnZA5udG6Qa0fbWRugBxbpFTC2/JOHjxe9E/DtDWDn5ICnBPSAKa9UMLZZk8BYOoXMcGIwwlScjiCzJWrTgYg1jObHyVvB5bfX70ZvgmlF7mBsGWbUgPYwkph77z8Pvt70zy77l2dfb05Prk8HEoD72f6oAwPJIDAecvNwjzPycK95Gjx6LAli8aBNWLI8JQeZdhTy6gR1ajOxAbxWkIJP3zA5DJ0GTmOQ3lVfJWpOzkecjjqvOsdb6ElWntyc3AFGghmDF+kgbb69q34HTgotUnC2ZvKwN9qU8M+jfVieGsBtFb1Zwh9ZCrjd03hq7az1M7Z8uAR/X/AUOENCcoZT6YdBO5X1XGLo3Ut15MSwPmxPalvpi+mB5ZRpE+bdOKzGg3gn4gv9WuqQ87keEafWs1g8Pkoxt65YLGQ5fjKQE5ppL20nU90JFp62wq+ePmqv7Xj7IF1nV1ozalafJuZY1GIRPkzM0enQ1aUPJO3xkPjxll6aUsUbd2096cTLqg2dnQ7UYvEPVXUchQ==
+api: eJztWE1v20YQ/SuDvdQuaNlp3R6UNIWiOq5SxzFsGTkYRjQiR9RG5C6zO5TNGvrvxeyK+rBU9FIgF58k7g5n3rx5O+TwSdmKHLK2ZpCprsqJrwpsyHmVKMbcq+6dalfuE1Whw5JYrrp3T8qnUypRdZ8UNxWprvLstMlVokptLsjkPFXdV4tEOfpWa0eZ6rKrKVEGSzHXmcTRRnXVt5pcoxb3Yusrazx58fvTyYn8ZORTpyvBqbrqqh4XOgWdkWHNDUysg7oCtvDLCaS2LPHIk0BlyqD25CAGSq1hMiwOsaoKnYbEj7968bonGzv+SimrRFVOaGIdMVVLPtaG6Bw2kglT6f/bgc52KVskSpBGYvZsZtpL3Mt/28c5MrpbV6x379blMHVRqPtForTvGWua0tabOMfWFoRGLbZKdSdAN2Btg9gMue33PlGsuRDHUTpq8dxxtZbUtqkX20WiTvfVfWDmWOgMxBN5/v8qSs5Zt5fW1GZ7+E4UmbqURIzlXsp6LnwYy9eEmQiBHquQali8IpPFuzwj022ViTCD8EM+V9gUFsNCUVCOxUcb/NVmZuyDOY9sG8sfrDY4LuQqx5LeS1EThYWTqLK5ioiOdaorNBwX+o6QrRPG4r8+GmP5gjBEijzdGl9XlXURXFv2JekbK0OckVGJmjhNJvOfTCEpO8q159hLrttSJ0qXmNPQ2gt0eUxqFWQQtoTYRMlZvdCl3iKmXztvnYhkWwc98Cw8QInpVBsCqdKyHUwabXJ4mDaArU5ggrqgrKPWYjuTgvelts+VGaVw/8z0etmTVup8tavOj9p7iW0dLPED28jUi0xfZPpdZPrzrkwvLQMWhX0IKbwo80WZ30WZp/uVObG1edHliy6/iy4Xz/FsjUMl8dQuhyQRGspwo46x0sdkcm3ouFrZekprp7kJU9JEOxqjlzfyexlw2s0bKU7U6dpkpcgpc9VWMLyjEzqSQsc/760rkVVXffg8VLs8vl86hMEf8S0kAU+GAT2MejVPrdN/h4p24V3wB2+C2dsRHFgHo9/D1W8jsAY+0/jGpjNiqKvcYUb+sCNHaGz5zxLTzTmo0n9R0450U8IsIF5Oe2c6J3N0o3ODXDvaRW2AHlmkWMDY8g8e/vzY64NvbwA7Jwc8JaBHTHmlgrHNmgTG0jlkBhSDEabidASZLVGbDkSuYTR/lbwRXn49fTt6HUwrckdjyzCjBrSHkcQ8ePdp+OVmcH45uDz/cnPWvz4bSgAeZIejDgwFQah4wObhAWfk4UHzNHj0WBLE5EGbsGR5Sg4y7Sjg6gR1ajOxgbxWkMLPwDA5DJ0HzmKQ3tVAJWpOzkeeTjqnnZMd9gSVJzcnd4SxwIzBi3SUFm/vatCBfqFFCs7WTB4ORpsS/nF0CMtTA7irotdL+mOVAm8PNJ5aO2v9jC0fL8k/FD6FzgBIznAq/TFop7KeSwy9fKmOnBjWh20rt5W+mB5ZTpk2YV6Ow248iHcivtC/JQ85n+sRc2o9i8XTkyRz64rFQpbjJwc5oZn20nYy1Z1g4Wkn/OpppA7aDngI0nX2wZpRs/q0MceiFovwYWOOTocuL30gaY+HxI+39NKUKt64a+fJJ15Wbej8bKgWi38AnAoz2Q==
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.StatusCodes.json b/docs/reference/http-api/get-profile.StatusCodes.json
index b0fd171..d26f2eb 100644
--- a/docs/reference/http-api/get-profile.StatusCodes.json
+++ b/docs/reference/http-api/get-profile.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The caller's own profile","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"},{"type":"object","properties":{"email":{"type":["string","null"]},"createdAt":{"type":"integer"}},"required":["email","createdAt"]}],"title":"Profile"}}}},"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
+{"responses":{"200":{"description":"The caller's own profile","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"},{"type":"object","properties":{"email":{"type":["string","null"]},"createdAt":{"type":"integer"}},"required":["email","createdAt"]}],"title":"Profile"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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-profile.api.mdx b/docs/reference/http-api/get-profile.api.mdx
index 843ece2..0c02d4d 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: eJztV01v2zgQ/SsDXtosVCfdFntwu1242TR126RB4qCHwKjH0lhiTZEqObKjDfTfF0PZjhNnEeylp1wch0POx3tvxuSNchV5ZO3sMFN9lROfeTfThlSiGPOg+lfqhNQ4UZ5C5WygoPo36veDA/mTUUi9ruS46qtRQZCiMeSfBXBLC9XGVeosk2U5g1VldBpD7v8IcvBGhbSgEqPVmK8z1b+6UdxUpPrKTX9QyipRlZdUWXcJ6Ew+V3sCe21z1SaqDuQtlvSgMdOhMtic/pcdF8joL725tV6tzYmytTFq3CZKh4F1tildHbbcTJ0zhFa1rUD1s9aeMjmvM7WV1t0ktkPe9TtOFGs24vjMYENetcljkFCJ+pHUU0/IlA14K3FtmXIJcC/xzt32mXG7ndaK27aVg68f0sPQLtDoDMQrBf4/MnikUu+df5DC1GUPcJsosnUpRVnHg5T1QrC3js8Js0bM11UsOy6ekc26U4GR6bLKpH4hqKvnDBvjMC4YQzmaExf91XZu3dIed8xax5+ctjiN+s+xpA/CQqLQeIkqxk1E9KxTXaHlbuFQMHd+jb7zh2it4y+EMVKH06UNdVU53yW3ltgK9K2VEc7JqkTNvCabha/WSMmech24a/3zNe2J0iXmNHLuC/q8K2oTZBhNAmyiPDJ90aWW2OPkHu8DCCx1Q4lpoS2BsAI6I8t61mibw7JoANe6gBlqQ1lP3YrrSAg+FC53VBmpH9/ber6aTRs1vtxV44kOQWI7DysigV2HzJMsn2T5S2T5aleWp44BjXHLWOeTEp+U+EuU+PphJc5cbZ90+KTDX6LD9n4+d14fJXHhVm8SERZyofpqHyu9TzbXlvYjfYHS2mtu4pthpj1NMcjtN15W18YL4aGT5O2WjfgK5mpNVrzKE3oSTrsvH5wvkVVfffo2UrsQflg5hOHf3YUigUCWAQNMBjUXzut/Inl9eB/9wdu47d0EnjsPk7/if39OwFn4RtMLl86Joa5yjxmFvZ50y9TxxxLTrZyx0p+piVqXCgizmHH39lFHOif74kLnFrn2tJu1BbpmUZ2BqeNnAT6eDA4hrA+AW5AHLgjoGlPeCGDqsiaBqQwJYBc3TDAVpxPIXIna9qDDGiaLl8lbweWP1+8mb+LWivyLqWOYUwM6wERiPn//dfT9Ynh8Ojw9/n5xdHh+NJIAPMz2Jj2QF2VHdswtwBLnFGCpuYgeA5YEXfGgbVxyXJCHTHuKefWiMLWduQjeWouCz9AyeYxDBo66IIOzoUrUgnzocDroveq93EFPsgrkF+RfYEcwY/Qiw2Od7+Bs2INDo0UK3tVMAZ5PttX722QPVg0DuKuiNyv4O5YibkuaFs7N136mjvdX4O8JngJnTEjaN5VRGLVTucAlxrG9UkdODLd9dqe2jb6Yrnm/MqhtfFZ3b+KuB69EfHFUSx2xU6XPCxdYjDc3UselN20ryz9r8tKc40Qt0Os4ZqU7k7VopW/n1Igq05Qq6fUFmroT+b2fHunpzVw4Phqptv0X9unZiw==
+api: eJztl01vGzcQhv8KwUviYi07rdGDkqZQVMdRGjuGLSMHw4hGu6NdRlzOhpyVvDX2vxfDlWTZchH0lIsv/uCQ8/HOM5R4p6lCD2zIjTLd1znyuaeZsagTzZAH3b/Wp6hvEu0xVOQCBt2/078eHsqvDEPqTSXHdV+PC1QpWIv+RVC0dKrauErJMTqWM1BV1qQx5MG3IAfvdEgLLCFarf080/3rO81NhbqvafoNU9aJrrykyqZLwGTyc7UnsDcu122i64DeQYlPGjMTKgvN2X/ZYQEM/srbe+v12pxoV1urb9pEmzBw5JqS6rDlZkpkEZxuW5Hqe208ZnLeZHorrYdJbId86Pcm0WzYiuNzCw163SY/kgRLMD9IPfUIjNmAtxI3jjGXAI8S79xtn7lpt9Na9bZt5eDRUzyM3AKsyZR4xcD/B4MfVOo9+SdbmFL2RG8Tja4upShHPEjZLER7R3yBkDVivq1i2XHxHF3WnQoMjFdVJvVLg7p6zqGxBHHBWszBnlL0V7u5o6U76TrriD+ScTCN/OdQ4nvpQqLBeokqxk1E8GxSU4HjbmEompNfq09+CM4Rf0KIkTqdrlyoq4p8l9wasZXoWytjmKPTiZ55gy4Ln52Vkj3mJnA3+hfrtifalJDjmOgT+LwrahNkFE0ibKI9MH4ypXkgzLD2gbyw+5CDgQosOqgS0sI4VNIlZTJ0bGaNcblaFo2CNSdqBsZi1tP3sB1Lw4fS2x1KIwo3j7ZerO6qDZ2vduk8NSFIbPJqlb9i6pR6xvQZ05+C6W+7mJ4RK7CWlrGEZzKfyfwpZB49TeaMavfM5TOXP4XL9nE+D14vJXJBqzeNgAZc6L4+gMocoMuNw4PYzoBp7Q038c0xMx6nEOTbc/yyuzZeSl86RO+3bGAsmKt18+JTAMGj9Lj74z35Elj39ccvY70r4fuVQzX6q/sCkqiAjhUENRnUXJA3/8Rm9tW76E+9idveTtRL8mryZ/zvj4kip77g9JLSObKqq9xDhmGvJ9MzJf5QQrqVM1Tmb2xii6UChCxm3L2d9LHJ0e1fmtwB1x53s3YKb1kotGpK/CKoD6eDoQrrA4oW6BUXqPAWUt4AMKWsSdRULg3FFDdMIBWnE5VRCcb1VKe1mixeJW9El9+P3k5ex60V+v0psZpjo0xQE4n58t3n8dfL0cnZ6Ozk6+Xx8OJ4LAF4lO1NekpepF2zY25BLWGOQS0NF9FjgBJVV7wyLi4RF+hVZjzGvHoRTONmFMVbsyj6jByjh3jpqOMuyOB8pBO9QB86nQ57R73DHfUkq4B+gX4fugYzRC9ymazzHZyPempojaDgqWYM6uVkm95fJntqNTAKdil6vZK/61LUbYnTgmi+9jMlPliJvyd6ipwxIRnfVK7GyE5FgUuI1/iKjhxZ3c/Zg9o2fDHe8kFlwbj4LO/e1N0MXgt88eqWOuKkypwXFFiMd3dSx5W3bSvL32v0Mpw3iV6AN/HalelM1tDK3M6xESrTFCuZ9QXYuoP80UeRzPTmXjg5Huu2/Rfs0/Df
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 9273bb5..6379f0b 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 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 ec69107..3d5c65e 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: 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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/join-game.StatusCodes.json b/docs/reference/http-api/join-game.StatusCodes.json
index 9273bb5..6379f0b 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 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 a5a7cde..8a7e672 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: eJztWl9v2zgS/yoEX645KE7bLQ537t4ekmza9V3bBHF6+xAY67E0lthIpEqOkvgMf/fDkJIsy65TYIs8OQ+JLZLz9zfD0UyW0pRogZTRo0QO5Rej9HsoUEaSIHVyeCv5q5OTSJZgoUBCy4+X0sUZFiCHS0mLEuVQOrJKpzKShdIfUKeUyeGrVSQtfq2UxUQOyVYYSc30hzKFAkeJjKTScihLoEyuJmE3OjozyYJp9w/HRhNq4iUoy1zFXvaTL85ofrYllJl9wZhkJEvLmpJCx6txrlDT2O/+L1qnwvH6kNKEKVq5Yn5FATph4+xXNJIFPLbfXv99taH57U6Ok0iSopxp/tsoLVercMqVRrsg6OuXL/lPgi62qiQvpxwjECZDQRmK0jg6ZrcJh85T/WFGagg+uTGsbtsHdVWw7g2hySqSDr/utnSNhy0yfCYzls5NsoPJKpIQx+jcPv5lNctV7MVW90CM7rlVqBPXdQED/TTQYp7fgw09V+m2eVaRpMrqMcaGWbTrt+3hSOoqz709ZlWSIn3fXqVjiwXD6Lu2W0ZJR7yZMTmClmFJ6fTKmLxLozVcS6JQ+iqHhY/5XSYo4HHvemw9VM8W+9k4Aqr2uvABFIUnFiFZSHY7qXvvSqWVy5BTCcyMZZ17Xh0H8qtIllvCgrXA5BRh4Z6GeiAw0gk+7ta4cmi7MN6l7szQU1ueCqmsKoBDfWZITvq5pitkK1HDtqbdMRGnE8k07vto3wmrufUJfClBLy7n/i74c+khEJzsEqBr2QRoR9Jip6JOGM3f7duWKFNFSHKl8Qmlg0lvVIEbUddwCPv2czIVxWbj/A8Hn0VX5bQ3jhSjJjfOyUgmFh54LVeF0j5Z1KrGPsvs5kEIxR4RXGzshjF1Vcy6ttyL1VqBrhBdjh3QXgZresuGbPYnDKsS1KRo8fTOHxLePRP0ArSj5LVXbNRIx87ZSNmdW7CoznC+YfrG8uwUlRawZz1Rjv2wtaOb6avTOaH9NvlvL9fU+xu6oR12nGeg0538exZr/VUbpKP+prJ91dZ6bEjdk7Ev0JZHfsWcQK76Ynmp11msTllbCaqTdDYTS4fPO58TV1HHnHkuV1vYqVlyVRWtS+p1wdSWR/2Kpi1fNouVfkGyo+hoCouNKmKjVNioC7pFQHvTr2/irrnqi6B7M4XCsa91W1Cut56HQp0LuJKlC7X0m13l80jfQ64SUb9q/LiCGa01dmd0xjuL13Va1oZOm3pGG7quaxx8LL3K/uFVQFFtRPxcJrUbVNDnCha5Af8gzzGF/KPx9Cp9p81D81qnDfG7BsxyrBHzjpEVSch9ZcWLLUewpGJVgk/D2tA5e9LYxqfGnoPWhj4geE7BTp+1q8oyFGKh+uA3vtronSc3cId6XYpf6nzhb4BUOQqvpNeNyyOpCkjxxpgPYNOgVMtk5JdCHDAyP6hC1UXgpt9PhSPWWxQQZ0qjYK+IkEvmC6VT8ZAtBDS4EHNQOSYDuQbZBTvYx1UfkcH1k97W6/pVrkXjq200flTOMW9jRe1IQSZY5gDLAyyfBZY/bcPykyEBeW4evJ4HJB6Q+CxIfLMbiXNT6QMODzh8Nhz+Y0fXlZ0puGrOVUxvhUW30LEAzZUk2cUBngd4PhM8X7/ehuepc4wgo0WhXAEUZwdAHgD5HIBc9eXpTBELpMzwZJHnVIwrnvMN5QmU6gR1qjSesKvcyTI0L1YnfNh3NOLK+pbc7VLOlcUZOG6mTXhI2Cz6cVqA6HpLC8aMqGyc5+cfCNZ3d8KHd8YWQDx7+/1Gbpv0XU1QjH4NL2SRcKhJgBPT04oyY9X/vDOH4szTEz/7bb9MxQtjxfRf/ts/p8Jo8TvOxia+QxJVmVpI0B0NZOgU/lZA3G1cluo/uGimohlCEnqnYWZ6oVLUx2OVaqAqtLc2pdYCH4lRmIuZob848dvH03PhmgPC3KP1Y0N8hJhaQMxMsojEjIssQcZvmPJ8xeipSEwBSg9EsLWY3r+Kfma7/O3NL9O3YQSJ9nhmSNzhQignpszzxdnlzR/j0ftPo0/v/xhfnF9f3DADGiVH04G4YQm8971sTjzAHTrxoCjzFB0UKILyQmn/yFCGViTKopdr4IHKeex6PTC+eISizPGbA96XG/PcThZTem68ExqMs51HmtCGKZO4CMKeXo06DauhfDn4afBqywusnUN7j/YYAlAIPBWGeKP36dVoIM69lMKaitCJF9NuWPx1eiTqQBSwjca3tRuDt739H3CWGXPX0JkZOqmdeMR+Ybd4gTgtxJxiB6Gj7IhnScNlgzI/Ta7jd0OzFqWEj3RS5qD8MLGyviUdQvuWIewvgDQ0OH14y0gO2+6kj/BJJDNOCcNbuVyyZp9tvlrx468VWg77SSTvwSqf0DkJJMrx50QO55A73JKtvevkiya/Holm3NWXuQk3zbF2D3nF32Qk73Cx/t+EFXfz6xhkCcLieeBzXGfm5vDW/crN23AiNCX37p10UuXV5fjGTwPCv0AU/oqVYVbDv72gxuvtU59/tpQ56LSC1HvQ0+Sf/wNGJ8aR
+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 7837e00..6afe675 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 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 76652b0..e57cb96 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: 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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/list-friend-requests.StatusCodes.json b/docs/reference/http-api/list-friend-requests.StatusCodes.json
index 6c5a8b1..cc4bed2 100644
--- a/docs/reference/http-api/list-friend-requests.StatusCodes.json
+++ b/docs/reference/http-api/list-friend-requests.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Pending requests, incoming and outgoing","content":{"application/json":{"schema":{"type":"object","properties":{"requests":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"},"userId":{"type":"string"},"since":{"type":"integer"},"direction":{"type":"string","enum":["incoming","outgoing"]}},"required":["username","displayName","avatarUrl","isAnonymous","userId","since","direction"],"title":"FriendRequest"}}},"required":["requests"],"title":"FriendRequests"}}}},"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
+{"responses":{"200":{"description":"Pending requests, incoming and outgoing","content":{"application/json":{"schema":{"type":"object","properties":{"requests":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"},"userId":{"type":"string"},"since":{"type":"integer"},"direction":{"type":"string","enum":["incoming","outgoing"]}},"required":["username","displayName","avatarUrl","isAnonymous","userId","since","direction"],"title":"FriendRequest"}}},"required":["requests"],"title":"FriendRequests"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/list-friend-requests.api.mdx b/docs/reference/http-api/list-friend-requests.api.mdx
index 42797d1..531e95f 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: eJztV01vG0cM/SuDudQuxpLTBD0oaQrFtR2liWPYMnIwhIjapVcT7Q43M1zZqqH/XnBGK8myg16KnHzS7nyQj4+P1PJeU40e2JIb5LqnSxv4xFt0+QV+bzBw0EYzFEH3rvUlZRZKPTLaY6jJBQy6d69/OzyUnxxD5m0tpnRPn6PLrSuUX5kxyrqMKlkClytquCDrCm10Ro7RsZiAui5tFtF0vwWxc69DNsUK5IkXNeqepsk3zFgbXXvBzjahaB1tnQTvYaGNtoxV+G8LTUDvoMKtk4G9gFwandtQl7A4+9E+zIHBX/lys3vdbhvtmrLUo6XRNvQduUVFzTagCVGJ4MSOgJBMPOEiWJdtO7eOsUCf0HnMEvO7F41G11SCpk2ANnpN/2i5NJE66zGXQ2sSHoa8HeDDKNaQW4DbaEZGs+VS4DxQlV7u+l2n70dXgtxZGv3qKbUN3BxKm7dq+/9Uhd6TfzIbGeVPKGHDtiPuZ2znQogjvkDIRYt4V8eQ4+KqSIQ6BsarOgeOezbFcw6LkiAulCUWUH6iaK9xM0e37jRlxhF/IOtgUspbARWeiNyMhtKLV9lcewTPNrM1OE4LRx6ByQtj6ekInCP+iBA9JZ6uXGjqmnwC10pkRfrWyhBm6LTRNzFx4bMrJWSPhQ2cmsxFm3KjbQUFDok+gi9SUGsng7glxBrtgfGjraz4HpmdvPdVYIlbVZBNrUMlWVE2R8f2ZiHN5na6UNDqQt2ALTHv6I3GjiXBR5LLXUWm1I92jl6sOt9ajS8eq/GTDUF8k1erRCqmxMyzLJ9l+VNk+fKxLM+IFZQl3cY4n5X4rMSfosRXTyvxhhr3rMNnHf4UHS538Tw551TIU5IpqMAoMOCp7uku1LaLrrAOuyu+un5zKWDWeMsL3bu+1zfW4wSCfPyPlqPN5qVkJwl1c2QtySlz3aYwjgMIHiXT6eGEfAWse/rDl6F+TOzJyqAa/JU+M4wK6FhBUON+w1Py9p+Y0p56F+2pN/HY27HaI6/Gf8a3P8aKnPqCk0vKZsiqqQsPOYb9jtTQhPh9Bdn2bFXbvzEOV4JiipBHxGl+0se2QHdwaQsH3Hh8jNopvGPRYqkmxL8E9f5T/0iF9oKiOXrFU1R4BxmvZTGhfGHURFqHYooHxhBHjbHKqQLrOipxrcbzF+aN8PL7q7fj1/Fojf5gQqxmuFA2qLH43Hv3efj1cnB6Njg7/Xp5fHRxPBQHPMj3xx01FAQx9RFbULcww6BuLU+jxQAVqhS8si4uEU/Rq/UI1Ilyte6GInmtQoWfgWP0EFuPOk5O+ucDbfQcfUg8HXZedl48Yk9QBfRz9AeQEswQrUhLafH2zwcddVRakYKnhjGovfG2ln8d76tVGSl4rKLXK/pTliJvtziZEs1aOxPi7or8feFT6IyApKgzaZBROzUFriA285U6pPhUqj61VX4PglwLjfGOu3UJNo3HacBOpXktKoydXALatDNtHoyTUwosh+/vJcArXy6Xsvy9QS9VOzJ6Dt7Grixla1o1S0HPcCFyzTKspSXMoWyS+nf+qaTY1+3j9Hiol8t/Aag0FKA=
+api: eJztV01vG0cM/SuDuTQu1pLTGj0oaQpFtR0ltmPYMnIwhIjapXcn2h1uZriyVUP/veCMVh+2g14K5OKTVjNc8vHxkRIfNNXogA3ZYaZ7ujSej51Bm13i9wY9e51ohtzr3o2+otRAqceJduhrsh697j3o3w4O5CNDnzpTiyvd0xdoM2Nz5VZuEmVsSpUcgc0UNZyTsblOdEqW0bK4gLouTRrQdL958fOgfVpgBfLEixp1T9P0G6asE107wc4momgDbVmCc7DQiTaMlf9vD41HZ6HCLUvPTkAuE50ZX5ewOP/RPcyBwV27cnN7014n2jZlqcfLRBvft2QXFTXbgKZEJYIVPwJCKvFMCG9suh3cWMYcXUTnMI3MP34x0WibStC0BdCJXtM/Xi6TQJ1xmInRmoTdlLcT3M1iDbkFuI1mnGg2XAqcHVXp5eO46/L96BUv7ywTffic2oZ2DqXJWrX9f6pC58g9W42UsmeUsGHbEvdTNnMhxBJfImSiRbyvQ8rhcNUkQh0D43WdAYc7E/O5gEVJEA7KEnMozyj4a+zM0p09iZWxxB/JWJiW8i2HCo9FbomG0klUuVxHBMcmNTVYjgcDh8DkhLH4NABriU8RQqTI07X1TV2Ti+BaiaxI3zoZwQytTvRtKJz/bEtJ2WFuPMchc9mWPNGmghxHRKfg8pjUOsgwXAmxiXbAeGoqs0PMoHGenGhlVwd95Vl4UBWkhbGopErKZGjZ3C5k+NwVCwWtTtQtmBKzjt5o7kgKPpDaPlZolML4kenlahKu1fn6qTrPjPcSm5xa4VdMkakXmb7I9KfI9PenMj0nVlCWdBdSeFHmizJ/ijIPn1fmLTX2RZcvuvwpulw+xvPsnlQhFyRbVI5BcMCF7uku1KaLNjcWuyv+um7zkse0cYYXunfzoG+Nwyl4WR7Gy/Hm8kqqFYW7MVlLtGCu25KGdQLBoVQ+PhyTq4B1T3/8MtJPiT1eOVTDv+PfkkR5tKzAq0m/4YKc+SeUuKfeB3/qbTB7N1GvyKnJX+HbnxNFVn3B6RWlM2TV1LmDDP1eR3pqSvyhgnR7N6vNJwzLmaAoELKAOO5f+sjkaPevTG6BG4dPUVuF9yzaLNWU+BevPpz1B8q3Lyiao1NcoMJ7SHktiylli0RNZZQopmAwgbCqTFRGFRjbUZFrNZm/Tt4KL38cvpu8CaY1uv0psZrhQhmvJhLz1fvPo69Xw5Pz4fnJ16ujweXRSALwMNubdNRIEITSB2xe3cEMvbozXASPHipUMXllbDgiLtCp9QrVCXI19pYCea1ChZ+hZXQQRpE6ikH6F0Od6Dk6H3k66Bx2Dp6wJ6g8ujm6fYgFZgheZMS0ePsXw44alEak4Khh9OrVZFvLv0721KqNFDxV0ZsV/bFKgbc7nBZEs9bPlLi7In9P+BQ6AyBp6lQGZtBOTZ4rCMN9pQ5pPhW7T221306Sa6Ex3nO3LsHE9Tou6LE1b0SFYbJLQpvxppOddbQgz2L88CAJXrtyuZTj7w066dpxoufgTJjS0rZJq2Zp6BkuRK5pirWMhDmUTVT/o18uafb1+Dg5Gunl8l//HCv0
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.StatusCodes.json b/docs/reference/http-api/list-friends.StatusCodes.json
index 0eea37b..0505b95 100644
--- a/docs/reference/http-api/list-friends.StatusCodes.json
+++ b/docs/reference/http-api/list-friends.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The caller's accepted friends","content":{"application/json":{"schema":{"type":"object","properties":{"friends":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"},"userId":{"type":"string"},"since":{"type":"integer"}},"required":["username","displayName","avatarUrl","isAnonymous","userId","since"],"title":"Friend"}}},"required":["friends"],"title":"Friends"}}}},"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
+{"responses":{"200":{"description":"The caller's accepted friends","content":{"application/json":{"schema":{"type":"object","properties":{"friends":{"type":"array","items":{"type":"object","properties":{"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"},"userId":{"type":"string"},"since":{"type":"integer"}},"required":["username","displayName","avatarUrl","isAnonymous","userId","since"],"title":"Friend"}}},"required":["friends"],"title":"Friends"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/list-friends.api.mdx b/docs/reference/http-api/list-friends.api.mdx
index 0b8042e..ef07236 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/SsDXhIXazlpgh6UNIXi2o7SxDFsGTkYQjTaHe8y4pIbcla2aui/F0NqJdly0UuRk0+WyNn5eO/NaMd3yjXkkbWzw0L1ldGBj70mWwSVKcYyqP6VunC5RqPGmfIUGmcDBdW/U7++eCF/Cgq51434UH01qghyNIb8swCY59QwFXC99pk7y2RZHsSmMTqPwQ++B3n6ToW8ohrlEy8aUn3lpt8pZ5WpxkuqrFPszuHGEL3HhcqUZqrDfztoA3mLNW1ZBvbalmqZqUKHxuDi9N/ucY6M/tKbze1Vd50p2xqjxstM6TCwzi5q124nNHXOEFrxI0kI7o+ECNrm28G1ZSrJq+VSWPjRak+FRF3XcT/r7RzvJ7KO2sUYZ4o1GwmSqFfLh0E6tHdMg9guM/X6MSkM7RyNLkA8UeD/j3zy3vlHUctd8QhjmSLb1lKIdTzIWc8FIOv4nLAQzdBtE0uNh2dki/RUYGS6bArkeKdTPWe4MA7jgTFUovnsor/Wzqy7sScJfuv4o9MWp0a+lVjTscgiU2i8RJXLdUT0rHPdoOV0cOgJ2XlBLH06RGsdfyKMkRJOlza0TeN8Sq7TwQr0rZMRzsiqrCPxizVSsqdSB06tf95RnSldY0kj5z6hL1NR6yDDeCXAZsoj0ydda4k9zh7wPoDAUjfUmFfaEggroAuyrK8X2pZwUy0AO13ANWpDRU9txHUkBB8Klw+VmKgfPzA9X42ltRpf7qrxsw5BYjsPKyKBXULmSZZPsvwpsny1K8tTx4DGuJtY55MSn5T4U5T4+nElXrvWPunwSYc/RYfLh/nc3z5q4srJUlJSVBZypfrqABt9QLbUlg42W0WgvPWaF6p/daeutacpBnkpHy/Hm8sLYWO1PqxN1hKsmJuOsviaTuhJmE0fjp2vkVVfffw6UrtAHq8cwvDP9FqRQSDLgAEmg5Yr5/XfkcI+vI/+4G00ezeB587D5I/47fcJOAtfaXrh8hkxtE3psaCw15OemTr+UGO+vfM0+i+KS49kUREWMeO016gjXZLdv9ClRW497WZtgW5ZtGdg6vhZgA+fB4cQugfAzckDVwR0izmvZTB1xSKDqYwKYBcNJpiL0wkUrkZte5Cwhsn8ZfZWcPnt9bvJm2jakN+fOoYZLUAHmEjM5++/jL5dDE9Oh6cn3y6ODs+PRhKAh8XepAeyUibGY24BbnBGAW40V9FjwJogFQ/axiPHFXkotKeYVy/KU9trF8HrFCn4DC2Txzhq4CgFGZwNVabm5EPC6UXvVe/lDnqSVSA/J7+PiWDG6EVGSJfv4GzYg0OjRQretUwBnk+2JfzLZA9WbQO4q6I3K/gTSxG3G5pWzs06P1PHByvw9wRPgTMmJE2cy0CM2mlc4Brj8F6pQ5oNNt12r7i1wJhu+aAxqNO6mhbe1IlXor44saWQzdiSnq9cYLG4u5NqLr1ZLuX4R0teWnScqTl6HUeu9GjWSVe6d0YL0Wb8z4HQgKZNUn/wMySdvR4RJ0cjtVz+A3Ar38M=
+api: eJztmE1vGzcQhv/KgJfGxUZ2WqMHJU3hqLajNHEMW0YOhhCNdse7jLjkhpyVrRr678WQWkm2XPRSIBefLJHc+XjnmdHS98o15JG1s8NC9ZXRgU+8JlsElSnGMqj+tbp0uUajxpnyFBpnAwXVv1e/HBzIn4JC7nUjNlRfjSqCHI0h/1MAzHNqmAq4WdvMnWWyLA9i0xidR+f734I8fa9CXlGN8okXDam+ctNvlLPKVOMlVNbJd2dwcxC9x4XKlGaqw38baAN5izVtnQzstS3VMlOFDo3Bxdm/7eMcGf2VN5vd6247U7Y1Ro2XmdLhyDq7qF27HdDUOUNoxY4EIbo/4SJom28715apJK+WS6nC91Z7KsTrOo+HUW/H+DCQtdfOxzhTrNmIk1R6tXzspFN752iQs8tMHT6FwtDO0egCxBIF/v+KT947/6RquSueqFimyLa1JGIdH+Ws5yKQdXxBWAgzdNfEVOPiOdkiPRUYma6aAjnu6ZTPOS6Mw7hgDJVoPrlor7Uz627taZLfOv7gtMWpkW8l1nQiWGQKjRevsrn2iJ51rhu0nBYGnpCdF8XSpwFa6/gjYfSUdLqyoW0a51NwHQcr0bdWRjgjq7KuiJ+tkZQ9lTpwav2LrtSZ0jWWNHLuI/oyJbV2MoxbImymPDJ91LV+IMyg9cF5geQhB0cQWHSAGvNKWwKpEuiCLOubhbYl3FYLwI4TuEFtqOipDWzHUvCB1PYxmQmF8aOjF6sxtabz1S6dn3QI4tt5WMUP7JJSz5g+Y/pDMP11F9Mzx4DGuNuYwjOZz2T+EDIPnybzxrX2mctnLn8Il8vH8Ty8vdTElZNLTUmRNORK9dU+NnqfbKkt7W9uJYHy1mteqP71vbrRnqYY5KV+vBxvNi+lOqvrx/rIGsmKuelKGF/zCT1JpdOHE+drZNVXH76M1K6QJyuDMPwzvYZkEMgyYIDJUcuV8/rvWNI+vIv24E089nYCL5yHyR/x2+8TcBa+0PTS5TNiaJvSY0Fhryc9NHX8vsZ8+87U6L8oXpokioqwiBGne5E61iXZl5e6tMitp92oLdAdC4sGpo5/CvD+09EAQvcAuDl54IqA7jDnNQZTVywymMroAHbxwARzMTqBwtWobQ+S1jCZv8reiC6/Hb6dvI5HG/Ivp45hRgvQASbi88W7z6Ovl8PTs+HZ6dfL48HF8Ugc8LDYm/RArqSp4jG2ALc4owC3mqtoMWBNkJIHbeOS44o8FNpTjKsX8dT2xkXxOiJFn6Fl8hhHDxwnJ0fnQ5WpOfmQdDroHfYOdtSTqAL5OfmXmArMGK3ISOniPTof9mBgtKDgXcsU4MVkG+GfJ3uwahvAXYper+RPVYq63dK0cm7W2Zk63l+Jvyd6ipwxIGniXAZkZKdxgWuMw3xFhzQbbLrtQXJrwJjueL8xqNN1N12YUydeC31xgksimzEmPV+5wHLi/l6yufJmuZTl7y15adFxpubodRzB0qNZh65074wWwmb8z4OUAU2bUH/0sySdvR4Rp8cjtVz+A8SU9xc=
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.StatusCodes.json b/docs/reference/http-api/register-device.StatusCodes.json
index c1d134c..949448a 100644
--- a/docs/reference/http-api/register-device.StatusCodes.json
+++ b/docs/reference/http-api/register-device.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"Registered: the caller's pushes will reach this install"},"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"}}}}}}
\ No newline at end of file
+{"responses":{"204":{"description":"Registered: the caller's pushes will reach this install"},"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","invalidCursor"],"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","invalidCursor"],"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/register-device.api.mdx b/docs/reference/http-api/register-device.api.mdx
index 3f204e4..c409e08 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: eJztVk1z2zYQ/SuYvcTu0JKdujkoaTqK4iRK7cQj25ODRxMtyTWJCAQYYClZ9ei/dxakZNXq5NTeoosIYLEfb9/u4gFcTR5ZOzvOYQCeCh2Y/Fta6IwgAcYiwOAWLgimCXj63lDgNy5fweAhLrWnHAbsG0ogc5bJshxhXRudRcX9b8FZ2QtZSRXKF69qggG49BtlDAnUXtxgTUFO73S+IxTYa1tAApW252QLLmFwkkCF95vV899erBOoDfKd89W/XSXbVBKFdgESQJt7p3NIYEkpTNfrZCeS22h+R900AdZsRF+LyiRi1IIG63V7PdTOhtb958en8pdTyLyuo9QAJh2wlA8Ul6QyNIb8s6DqJpQU1FIbozxhVioudVDaBkZjYJ3A6fHxvr6xXaDRueoyAv8Z+OS98/sYrsVATj8C1zoeZqwXQhvreEKYr+T4vo7Ixs1Lsnl7KzAy3dQ5cjzTbTyXuDIO44YxVKC5cFFfY+fWLe17rDrtH522mBpZFVjRu8YYyazxYlUOtxbRs850jZbbjZEnZOcFsfZrhNY6PieMllqcbmxo6tr51rkmkLdYUQf6zs41zslCAndek83DZ2skZL/DkMmGWQnoCgu6du4cfdEGtTUyjkcCbAIemc51pcX2NHmS96EKLHGrCrNSW1KSFaVzsqzvVtoWalmuFG54oe5QG8p78EjiM0nwSHL5lPht6qdPRCcdtzuqnx6f7LPxQocgtp1XXSIVuxaZn7T8Scv/nZbrp/7szbGKuHQy4eomkgtlcEAfa90nW2hL/Yr6eZSWEREoa7zmFQxuZR55SjEQDG6n6+nj4ZXkZDOyNiJbIpbM9SZxsk4JPUl+2493zlfIMICPX65hH853nUI1ftuWUqICWVYY1GzYcOm8/ismcqDeRH3qVRR7PVMHzqvZH3H1+0w5q75QeuWyObFq6sJjTuGwJ5WTOv5QYbbjM9b6T1pF3ksEhHn0WCgluOuC7NGVLixy42nfa6vonoWBRqWOnwX14WI4UmFzQbkF+Tj96B4z3pIhdfkqUalrrLSNKDDDTJTOVO4q1LanWqzVbHGSvBJcXpy+nr2MojX5o9SxmtNK6aBmYvPgzefrr1fj95/Gn95/vTobTc6uxQCP88NZT12LBzHp0begljiPI5jLqDFgRaoNXmkbtxyX5FWuPUW/epGk0sMmjy+is3usakPbF8xjK3p8msQXyFrwvXMR9w2lBdqxZfIYe5U6a/0bXo4hgQX50EJ83Pu1d7IHvAQUyC/IH2HLDcaoRXrQJtTh5binRkYLi7xrmII6mO0WwC+zQ9XVncJ9Ar7sMtcmOEK+pLR0br7Rkzrud3k7lFRIJqJD0gUy6aiRdrULXGHs/h2xNtWqtuX6j/i29GS6535tUFvR03gjZ20p3wp3Y9eXWGLBRzVtQU8TKF1gEXt4kKhuvFmvZft7Q16qfJrAAr2OvVvKPNmwXxrAnFYwgFE7yY66frhA07Q182SqrZPNjWGWUc0/lJ3utKbLG+kEafe4ruJcA4/L2HyXMABIwEVMYs+Jew9g0BYNFiLbqpTf34sYHcY=
+api: eJztVk1v2zgQ/SvEXNosFDstsj2o3S5SN23dTdrASdBDYNQjaSKxpkiVHNnxBv7vi6Fkx40XPS32VF8sksP5ePNmhvfgGvLI2tlxASl4KnVg8m9poXOCBBjLAOkNnBNME/D0vaXAb1yxgvQ+LrWnAlL2LSWQO8tkWY6waYzOo+Lht+Cs7IW8ohrli1cNQQou+0Y5QwKNFzdYU5DTW13sCAX22paQQK3tGdmSK0ifJVDj3Wb1/PcX6wQag3zrfP1vV8m2tUShXYAE0Bbe6QISWFIG0/U62YnkJprfUTdNgDUb0dehMokYdaDBet1dD42zoXP/+dGx/BUUcq+bKJXCpAeWilRxRSpHY8g/CappQ0VBLbUxyhPmleJKB6VtYDQG1gkcHx3t6xvbBRpdqD4j8J+BT947v4/hWgwU9DNwreOTnPVCaGMdTwiLlRzfNRHZuHlBtuhuBUam66ZAjme6i+cCV8Zh3DCGSjTnLupr7dy6pX2Pda/9o9MWMyOrEmt61xojmTVerMrh1iJ61rlu0HK3MfKE7Lwg1n2N0FrHZ4TRUofTtQ1t0zjfOdcG8hZr6kHf2bnCOVlI4NZrskX4bI2E7HcYMtkwKwFdY0lXzp2hL7ugtkbG8UiATcAj05mu9Q/AjFofnBcy/siDExVYcFA15pW2pCRLShdkWd+utC3Vslop3PBE3aI2VAzggdSnkvCR5PZxIXRUmD4SnfRc76l/fPRsn53nOgSx7bzq/VfsOqR+0fQXTf93mq4f+7M352riyskEbNpINpTBAkNs9JBsqS0NaxoWUVpGSKC89ZpXkN7IvPKUYSBIb6br6cPhpeRoM9I2IltiVszNJpGyzgg9Sb67j3fO18iQwscvV7AP57teoRq/7UorUYEsKwxqdtJy5bz+OyY2VW+iPvUqir2eqafOq9mfcfXHTDmrvlB26fI5sWqb0mNB4WAglZQ5/lBjvuMzNvovWsV0SwSERfRYKCa465Ls4aUuLXLrad9rq+iOhZFGZY6fBPXh/GSkwuaCcgvycTrSHea8JUPmilWiMtdaaSNRYIa5KJ2pwtWo7UB1WKvZ4lnySnB5cfx69jKKNuQPM8dqTiulg5qJzadvPl99vRy//zT+9P7r5elocnolBnhcHMwG6ko8iEmPvgW1xHkc0VxFjQFrUl3wStu45bgirwrtKfo1iCSVnjZ5eDGd3mHdGNq+cB5a08PTJb5Q1oLvrYu4bygt0I4tk8fYu9Rp59/JxRgSWJAPHcRHg+PB0R7wElAgvyB/iB03GKMW6UmbUE8uxgM1MlpY5F3LFNTT2W4B/DY7UH3dKdwn4Ms+c12CI+RLyirn5hs9meNhn7cDSYVkIjokXSCXDhtp17jANcZp0BNrU61qW64/xLelJ9MdDxuD2oqe1hs560r5Rrgbp4DEEgs+qukKeppA5QKL2P29RHXtzXot299b8lLl0wQW6HXs5VLmyYb90gDmtIIURt1kO+z74wJN29XMoym3TjY3TvKcGv6p7HSnNV1cSyfI+sd3HecceFzGZryEFCABFzGJPSfu3YNBW7ZYimynUn7/AGQSKXA=
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.StatusCodes.json b/docs/reference/http-api/remove-friend.StatusCodes.json
index 69aaa4d..9c59537 100644
--- a/docs/reference/http-api/remove-friend.StatusCodes.json
+++ b/docs/reference/http-api/remove-friend.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"Unfriended / request withdrawn / declined (idempotent)"},"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
+{"responses":{"204":{"description":"Unfriended / request withdrawn / declined (idempotent)"},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/remove-friend.api.mdx b/docs/reference/http-api/remove-friend.api.mdx
index f33bf0f..426f916 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/StdfdlkS9jJQu1BsGyZ4IAhQCpxikPKhdtS2xoizYiZlh1vSv99q0e2CXHOnHKyNNPTH++9bo/u0NXsSYyzoxxT9Fy5JZ96wzbHBIUWAdNrvHSZoRInCdbkqWJhr+t3GLKCK8L0DmVdM6YYxBu7wAQrY8/YLqTA9LhN0POPxnjOMRXfcIKWKjVvAvuRRjIWU6xJCmwnah1qZwMH9fzX0Qv9yTlk3tSaKqZ4ZecxSc6hD+qcg8DKSJF7WlnoQ85ZaSzncGByrmonbOUQ2wRfHB3tuxvZJZUm33rCBDNn9YiaUl2XJosg9b8HtX+kcDf7zpkerL1CKqZLnr13fh+fVgPk/BhwbJtKMbdOBpmYJWOizxdM+Vq3b+uIY1w8Z5t3p4KQ8FWdk3AHZ6znnNalo7hQlryg8pOL/hp7Y93KvlMSoqMPzlialfq2oIpPm7LEBKn0GlU3dxHJi8lMTVa6hRPPJM4rYt3TCVnr5IwpRupwurKhqWvnu+SUdOV/A/q9lTHdsMUEO27DF1tqyZ4XJkin0outjhI0FS147NwZ+UVX1C7IKG4psAl6Ej4zldHYk+QB7wMIonVDRVlhLIOyAiZnK2a+NnYBq2INtFPYnEzJeU9bw0ipvA2V4BPlsv1F5tcb6icPTC820sa2baMaj/fV+MmEoLGdhw2RIK5D5kmWT7L8LbJ8vi/Lz06AytKtYp1PSnxS4m9R4iP//qrEuWvskw6fdPhbdNg+zOfBRbliKZxeoHMuWbSaeJdNsU+16bNdGMv9DVj9u+7W2yrqnDXeyDpepufG84wCY3o90VvwdvNSqelU+tNkp8dCpN7yp+8zJs9Kc/dw6nxFgil++DrGfVRPNw5h9La7YyQQ2ApQgOmgkcJ581/kM4U30R+8imavp3DgPEz/jW//TMFZ+MqzS5fdsEBTLzzlHA572kAzJ+8ryu7lTLX5yOvttb9gymPGm4+CoVmwfXZpFpak8byftQW+FRViCTMnfwR4/2lwAmF7ANySPUjBwLeUyU4TM5evE5jp3ABx0WBKmTqdQu4qMrYHHdYwXR4nrxSXv1+8nr6MpjX7ZzMncMNrMAGmGvPgzZfxt8vRu8+jz+++XQ5PLoZjDSCj/HDag7FmEKmPuQVY0Q2H+JUSPQaqGLriwdi45KRgD7nxHPPqRa0aO3cRvK08FZ+RFfYU5w4MuyCD8xEmuGQfOpyOes97x3voaVaB/ZL9M+oIFopedJ5s8x2cj3pwUhqVgneNcICD6X0t/zk9hE0PAe2r6OUG/o6liNuKZ4VzN1s/Myf9DfiHiqfCGRPSjs50Okbt1C5IRXGSb9TRdR7sWu+X6nYKE76Vfl2Sseql8aXudT15rfKL81sr+TnEMMF08z06SbBwQdT27k4Lu/Jl2+ryj4a9duskwSV5E0ex9m5ugj7nmM6pDLyX1u5fCg+2k/EQdDo9lu62S6y2yJLKRt8wwRte//xmbidtsm0dzaDbHGQZ13Lv2N5/ok6W3bh6OzwbjofYtv8D/8eZHw==
+api: eJztV1Fz2kgM/isavVxy40B6l7kHt9cbSklLL20zCZk+ZJgibAFb7F13V4ZwGf/3G62BJiXvfckT9q4sffr0Sezeo6vYkxhnhzmm6Ll0Kz73hm2OCQrNA6a3eO0yQwWOE6zIU8nCXtfvMWQLLgnTe5RNxZhiEG/sHBMsjb1gO5cFpi+aBD1/r43nHFPxNSdoqVTzOrAfaiRjMcWKZIHNWK1D5WzgoJ7/OD3Tn5xD5k2lUDHFGzuLIDmHLqhzDgJrI4vc09pCF3LOCmM5hyOTc1k5YSvH2CR4dnp66G5oV1SYfOcJE8yc1U/UlKqqMFkkqfstqP0TibvpN870w8orpWJa8Oy984f8NBog56eIY1uXyrl10svErBgTfb5iyje6fVdFHuPiJdu8/SoICd9UOQm3dMZ8LmlTOIoLRcFzKj666K+2S+vW9p0WITr64IylaaFvcyr5vC4KTJAKr1F1cx+RvJjMVGSlXeh7JnFeGWuf+mStkwumGKnl6caGuqqcb8Fp0bX+W9IfrIxoyRYTbGsbPttCU/Y8N0FalV7tdJSgKWnOI+cuyM/bpPZBhnFLiU3Qk/CFKc0jYvq1D86roB/roAdBlAcoKVsYy6BVApOzFTPbGDuH9WIDtFfcjEzBeUdbxUihdRxowfta2+aR7G+3Uhj/ZHq1lTo2TRPV+eJQnR9NCBrbedjiB3EtU88yfZbpL5Hpn4cy/eQEqCjcOqbwrMxnZf4SZT5xWlBlzlxtn3X5rMtfosvmZzw/HbRLloXTA3jOBYtmF8/CKXapMl22c2O5uyWve9+emhutAme1N7KJh/GZ8TylwJjejvUUvdu81lK1qv1hstfnQqTa1VPfp0yeteztw7nzJQmm+OHLCA9ZPd86hOHb9kySQGArQAEmvVoWzpv/Yn1TeBP9wato9noCR87D5J/49vcEnIUvPL122ZIF6mruKedw3NGGmjp5X1L2ADNV5l/e7K4NC6Y8It5eKgZmzvbk2swtSe35ELUFvhMVZgFTJ78FeP+x14ew+wDcij3IgoHvKJO9JqYu3yQw1TkC4qLBhDJ1OoHclWRsB1quYbJ6kbxSXv46ez15GU0r9idTJ7DkDZgAE4159Obz6Ov18N2n4ad3X68H/avBSAPIMD+edGCkCGLpI7YAa1pyiLec6DFQydAmD8bGJScL9pAbzxFXJ2rV2JmL5O3kqfwMrbCnOIdg0AbpXQ4xwRX70PJ02jnrnB6wp6gC+xX7E2oLLBS96HzZ4e1dDjvQL4xKwbtaOMDR5KGWf58cw7aHgA5V9HJLf1ulyNuapwvnljs/UyfdLfnHyqfSGQFpR2c6LaN2KhekpDjZt+poOw/2rfcou73ChO+kWxVkrHqpfaF7bU/eqvziPNdMfgw1TDDd3mfHCS5cELW9v9fEbnzRNLr8vWav3TpOcEXexNGsvZuboM85pjMqAh/A2v9r4dFuUh6DTqen4O66xGqLrKio9Q0TXPLmx527GTfJrnUUQbvZyzKu5MFnB/+ROln24+rt4GIwGmDT/A+7QLBz
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.StatusCodes.json b/docs/reference/http-api/search-users.StatusCodes.json
index babeea1..e236404 100644
--- a/docs/reference/http-api/search-users.StatusCodes.json
+++ b/docs/reference/http-api/search-users.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Matching registered users, best match first","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"}}},"required":["users"],"title":"UserSearch"}}}},"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
+{"responses":{"200":{"description":"Matching registered users, best match first","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"displayName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"isAnonymous":{"type":"boolean"}},"required":["id","username","displayName","avatarUrl","isAnonymous"],"title":"Player"}}},"required":["users"],"title":"UserSearch"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/search-users.api.mdx b/docs/reference/http-api/search-users.api.mdx
index 9a8f76f..9c47d36 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/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+YjTSedV53QPPfbKo1ugewExwQRBC/eR1t/+9aAjzrRiKjhbE3pxNNnm8c+TY7GqHQH7LHqzgj9mKeB2j9PC2nmrZ2qpuwL/mPFkOINDXMkpd8XAncp6KiF08BU7Yu2ItuR2glsTjPCBupUGZcLcG4fWWI53zL7QtjmQVS/zoRZDUY4TWVhPLPj4yEHdOr1c8nK8NeBKzZTnJrS5ZHjixfpdJI/a/ncsuAcd8m6OzeoyZAG65v1wFbJnI8q19xgb2TH/cSq8DbhzJG1BsafxUD9Nsdo+tfeGZC3r7nVxPpLL5T+BgE9k
+api: eJztWN9vGzcM/lcEvSwZLnbSZXtwuw6ul6bu0jSIHfQhMGr6jr5TrZOuEs+JF/h/Hyj5/CP2sJcBfcmTzyJFUh8/8o56krZCB6Ss6WeyIz2CS4s7j87LRBLkXnbu5cCmCrQcJbICByUSizv3T9KnBZYgO0+SFhXyfnLK5DKRpTJXaHIqZOdsmUiH32vlMJMdcjUm0kDJ6t9lIpXhhxrdQi6TAyaVIczRRZuqrEvZOUtkCY/x+dfTRGY4hVqT7Lw63fE1Be03zrQqFT1zOGJ1X1nj0bPPV6en/JOhT52qGBbZkZ+A0kKZXDjMlSd0mImaIUrEBD2JkuViqpxn86k1hIbYDFSVVmlAt/3Ns60D57OTb5jyxspxLkjFSIKDLTVwDhYcPWHp/3u7yvazskyC1QjHAWGmfKVhcf1vcpgDgbtzeiO932Tc1FrL0TKRyneNNYvS1ttxTqzVCEYudzJ0z4FuhbUbxLbLXbujRJIizYZvNCzQyeVzwxHALUVm9SDwm5WXiTw/lOy+mYNWmWBT+H8mFJ2z7iCuqc0OAJ5INEzwe2ksdVNScwbEWLpFyJgJ+FiFs4bFGzRZ3OUJCO+qDCjIVDzPDSy0hbCgNeagP9lgrzYzYx/MZYTbWPpolYGJ5n85lPies5pI0I69snDtERypVFVgKC70HAJZLtQ0PvXAGEtXCMFTxOnO+LqqrIvBNXlfgb61MoQZGpnIqVNoMv/ZaD5yLMDYr26bXCdSlZDj0NorcHk81NpJP4gY2EQ6ILziJrANTK923jrmyS4PusIT4yBK4OJHwVkSKkNDarrgbvBQLAQ0PBFTUBqzltzw7YIT3uPcPqdmpMLomertqhGt2Xl2oBUp79m3dWIVvyAbkXqh6QtNfwhNf9mn6bUlAVrbh3CEF2a+MPOHMPP8MDOntjYvvHzh5Q/h5fJ5PLsjV4lUWJ7EcgxMA56gZBsq1UaTK4Pt8F3bjrsYfUxrp2gR5rGpcjgBzx/mI55tGuGAUxTZulFZ87Igqpo8hk91BBcGrvjw3roSSHbkxy9DuY/m+5VB0f8zfoskwqMhAV6MuzUV1qm/Q1474l2wJ94EtbdjcWSdGP8R/v0+FtaILzgZ2HSGJOoqd5ChP25xIU0sfSgh3R6HKvUXLppprkDIQsSrUe9C5WhOBio3QLXD/aiNwEdiQmoxsfSTFx8+dXvCNxuEnaMTVKDAR0hpzYWJzRaJmHD/EGSDwhhSNjoWmS1BmZaIWIvx/Cx5w7j8dv52/DqoVuhOJpbEDBdCeTFmn0fvPg+/DvqX1/3ry6+Di97txZAdUD87HrfEkCMIaQ+xefEAM/TiQVERLHooUcTDC2XCkqUCnciUwxBXK3BUmakN4DW0ZHz6htBB6D/iIjrp3vRlIufofMTptHXeOt1Dj6Py6OboTiAmmCBY4b7SxNu96bdETyumgrM1oRdH420e/zw+FqvaEbDPotcr+GOWAm4POCmsnTV2JpbaK/CPGU+GMwTElZxylwzcqaynEkJHX7Ej1o5oSm7ncGuCET5Su9KgTJib49Aby/Ge2RfaOB9k1dt8qMVQlKNEFtYTKz498aHunF4ueTneOnClZspzE9pcUjyLYv1ukkdNPzwW3IMORTfDxeoyZQ66Znm4StnzEfWae5CN7oj/OBXeDtw5kqagONK4qZumWG3v2ntjspV197q8GMrl8h8Nh2a4
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.StatusCodes.json b/docs/reference/http-api/send-friend-request.StatusCodes.json
index 24d2a1d..47e74de 100644
--- a/docs/reference/http-api/send-friend-request.StatusCodes.json
+++ b/docs/reference/http-api/send-friend-request.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"Request sent, or auto-accepted","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["requested","accepted"]}},"required":["status"],"title":"FriendRequestResult"}}}},"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
+{"responses":{"200":{"description":"Request sent, or auto-accepted","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["requested","accepted"]}},"required":["status"],"title":"FriendRequestResult"}}}},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/send-friend-request.api.mdx b/docs/reference/http-api/send-friend-request.api.mdx
index 8f5af4d..5a6450a 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: eJztWE1v20gM/SvEXLZZKHazLfagdrtwvUnrbtIEtoMeAqOmJUaeWppRZyg73sD/fcEZ2UnjoKegp+QSzRfJ9/hIaXyrbE0OWVszyFWqPJn8xGky+ZC+N+RZJYqx8Cq9UiObaSzVJFEurr23+Vqlt2GoHeUqZddQojJrmAzLEtZ1qbNgv/vNWyNzPptThfLE65pUquzsG2XiqXYSDWvyYRVdQXzpyUlou92enTaFSlSlzSmZgucqPdpsknthXP14dpIo1lzK4YhtHFbVZhOP+doaH33+8fKl/MvJZ07XErZKVUsFeDKcgHWADdtDzDKqmXL1ZIA9Izf+MahkmkpgtcQHpzv/k4fgWzt7sFscQ/JNuUX/+jHAA7PEUufgdhp4IoTknHX7ADfiIKefITeWexnrJalEnoeE+VqWb+qAOkxekMnjKWGALuscI1U64rnAdWkxTJQlFVie2WCvMQtjV+YDVq31T1YbnJUyKrCik6YshfDSiVdZ3HlExzrTNRqOE31HyNYJY/Gpj8ZYPiUMniJPl8Y3dW1dDK7x5AxW1JJ+b2aMCzIqUdche/7clALZUaE9x5odbrOeKF1hQWNrT0XbAdTOySAsCbGJcsh0qisdhJM8yHsPPAtuqDCba0MgWQGdk2F9vdamgNV8DbjVBVyjLinvqDuhHUuC+5LLh6KMqZ882Dpsi2+nxqN9NZ5p78W3ddAmEthGZp5l+SzLXyLLV/uy/GwZsCzt6ilfAc9KfFbiz5X4+nElXtvGPOvwWYe/RIebh/E8dm2oiOdW7hS1DeMa5UtddbHWXTKFNtRt+eq2YXohnrLGaV6r9OpWXWtHM/Sk0qvJZnK3OJLsRKHebdlJcs5cb1Mo4xmhI8l0fDixrkJWqfr0Zaz2iT1pDcLgn/iZkYTvfkAP017Dc+v0fyGlKbwP9uBt2PZuCi+sg+nfYfTXFKyBLzQb2WxBDE1dOMzJH3SkhmaWP1aY3YsZa/0vrUMFCALCPEQs4pIM6ILM4UgXBrlxtB+1Abph0WIJM8u/efh41uuD3x4AuyQHPCegG8x4J4uZzdcJzKR1ANuwYYqZGJ1CbivUpgORa5guj5K3wsufr99N34StNbnDmWVY0Bq0h6n4fPH+fPx1NPjwefD5w9fRcX94PBYHPMgPph0YSwQh9SE2DytckIeV5nmw6LEiiOBBmzBleU4Ocu0oxNUJcpVuNry7gx7fYFWXtH9nvNe2tLm2YcNW1ELpwDA5DN0KjmNcvYuBStSSnI/Uvuy86hztES5APLkluUOMmmAMVqQLbSH2LgYd6Jda1ONsw+ThxfS+/H+fHkBbeYD7wnvTZiwmNlC9otnc2sXWzsxyt83XgaRAMhACkj6QSU8NcpMCrDD0/1ZQUq8QCxbuKvYHjDtpMt1wty5RG7HVuFLWYjFfiW5D7xc8dw1Q7X4iCLfQuTSA9Erd3gq+S1duNjL9vSEndT5J1BKdDn1cCj3Z6l9awILWKlX9+FY7bHvjEssmVs2DN9wm2Z7ohdvxT/dO7vWoi/ORNINZ+4tGFV5yyuEqdOKVSpVKlA3UhLYT5m5ViaZosJC90ab8/Q8ANRLD
+api: eJztWE1v20YQ/SuDvTQuaMlpjR6YNIWi2olSOzEkGTkYQjQix9RG5C6zO5SsGvrvxexS8oeMAAUC5GJdRO7HzLw3b2a1ulW2JoesrRnkKlWeTH7qNJl8SN8a8qwSxVh4lV6pkc00lmqSKBfn3tp8rdLb8Kod5Spl11CiMmuYDMsU1nWps2C/+9VbI2M+m1OF8sTrmlSq7OwrZeKpdhINa/JhFl1BfOnJSWi71Z6dNoVKVKXNGZmC5yp9udkk98K4erh3kijWXMrmiG0cZtVmE7f52hofff52dCRfOfnM6VrCVqlqqQBPhhOwDrBhe4hZRjVTrn4YYM/IjX8KKpmmElgt8cHpzv/kMfjWzh7sFseQfFNu0R8/BXhglljqHNxOAz8IITln3T7AjTjI6XvIjeVexnpJKpHnIWG+lumbOqAOgxdk8rhLGKDLOsdIlY54LnBdWgwDZUkFluc22GvMwtiVeYdVa/2D1QZnpbwVWNFpU5ZCeOnEq0zuPKJjnekaDceBviNk64Sx+NRHYyyfEQZPkadL45u6ti4G13hyBitqSb83MsYFGZWo65A9/8mUAtlRoT3Hmh1us54oXWFBY2vPRNsB1M7JIEwJsYlyyHSmK/2AmH7jvHUimIc66IFn4QEqzObaEEiWQOdkWF+vtSlgNV8DbnUC16hLyjvqTngnkvC+5PaxSKMUJo+WDtti3Knz5b46z7X34ts6aOMHtpGpZ5k+y/SnyPT3fZl+tAxYlnb1I4+IZ2U+K/P/KfP4aWVe28Y86/JZlz9Fl5vH8Tx17aiI51buJLUN7zXKL33VxVp3yRTaULflr9uG6SURlDVO81qlV7fqWjuaoSeVXk02k7vJkWQrCvduyU6ic+Z6m1J5nxE6kszHh1PrKmSVqg+fx2qf2NPWIAz+jj9LknBvAPQw7TU8t07/G1KcwttgD16HZW+m8MI6mP4V3v6cgjXwmWYjmy2IoakLhzn5g47U1Mzy+wqzezFjrf+hdUi8ICDMQ8QiNsmALsgcjnRhkBtH+1EboBsWbZYws/yLh/fnvT747QawS3LAcwK6wYx3spjZfJ3ATFoJsA0LppiJ0SnktkJtOhC5hunyZfJaePnj+M30VVhakzucWYYFrUF7mIrPF28/jb+MBu8+Dj6++zI66Q9PxuKAB/nBtANjiSCkPsTmYYUL8rDSPA8WPVYEETxoE4Ysz8lBrh2FuDpBrtLdhnd32JMbrOqS9u+c99qYNtc2LNiKWigdGCaHoXvBSYyrdzFQiVqS85Hao85x52iPcAHiyS3JHWLUBGOwIl1pC7F3MehAv9SiHmcbJg8vpvfl/+v0ANrKA9wX3qs2YzGxgeoVzebWLrZ2Zpa7bb4OJAWSgRCQ9IFMemyQmxRgheE8aAUl9QqxYOGuYh9g3EmT6Ya7dYnaiK3GlTIXi/lKdBvOAsFz1xDV7i+GcIudSwNIr9TtreC7dOVmI8PfGnJS55NELdHp0Nel0JOt/qUFLGitUtWPp9xh2yuXWDaxah6deJtku6MXbtffXTu516MuPo2kGczaf0SqcOgph6vQmVcqVSpRNlAT2k4Yu1UlmqLBQtZGm/L5D8BlKhc=
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/start-game.StatusCodes.json b/docs/reference/http-api/start-game.StatusCodes.json
index 2c3b4c1..7720767 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: 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 1807a98..84abeff 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: eJztWm1v2zgS/isEv1xzUJO0Vxzu3L09JN606720CWL39kNgrMfSWOJGIlVy5MRn6L8fhpRs+WWdAlsgX5wPiS1S8/LMM6MRJ0tpSrRAyuhBInvSEVj6CAXKSBKkTvbuJX91chzJEiwUSGj58lK6OMMCZG8paVGiv9kqncpIFkpfo04pk703dSQtfq2UxUT2yFYYSc3yezKFAgeJjKTSsidLoEzW47AbHV2aZMGyt2+OjSbUxEtQlrmKvfFnvzuj+dqOUWb6O8YkI1ladpUUOl6NTVGATtjpw/ZHsoCn1be3/6jrSJKinG+4NtPpoh8kybquva+uNNoFJW/Pz/lPgi62qmQ7ZU8OGWJMeoIyFA6dU0YLIDFH6z+ey+/mZCP9+Y1hdRcI1FXBFGgFjetIOvza2ao0YYpW1lEbzx0xfE9mLPVNskdJHUmIY3TukP6ymuYq9marORCzc2YV6sTzsg0HE/UiyGKdHqT/BlT3WxwbPVPpLjwc4srqIcaGVazW71c3R1JXee7xmFZJivRte5WOLRaov3G7BcIuoFNjcgQtw5LS6a0xeVfGCriViELp2xwWPmf3QVDA08H12CIbcbk4rMYRUHUwhI+gKFyxCMlCcthJzX0olVYuQy4FMDWcHNtRHQbxdSTLHWPBWmBxirBwz1M9CBjoBJ/2e1w5tF0a73N3aui5Lc+lVFYVoKUXJcf1RpW83zByZVGrtpHdgWiIQJJlzLfZvpdWM+sL8FKCXtzMfC3/c+UhCBzvM6CLbAK0p2hxUFEnzOZvju1KKEtFSHKl8RmnA6QjVeBG1rUawr7DmkxFsdm4/7uTz6KrcjqYR4pZkxvnZCQTC4+8lqtCaV8sGldjX2X26yCE4oAJLjZ2A0xdFdMulge52jjQNaKrsUPam4CmRzZUsz8BrEpQk6LF8zu/S3pvQbCVoB0n77xjg9Y6Ds5Gye48BYvqEmcb0LfIc1BUWsCB9UQ5jsPOjm6lry5mhPaPxf/xciN9e0M3tcOOfgY63at/C7FVvBpAOu5vOrvt2tqPDau3bNw2aCciP2FOIOtts7zV6yrWlKydAtUpOpuFpaPng6+JddSBM89lvcOdRiV3VdG6JV43TKv2aLujWbUvm83KdkOyp+loG4uNLmKjVdjoC7pNwOpJv34Sd+FqHgTdJ1NoHLe9XjWU661NH80NXMnWhX763b4WeqDnkKtENK8K369hRmuN3Zud8d7mdV2WtaGLtp/Rhu6aHgefSu+yv3gbWNSAiF/KpAmDCv7cwiI34C/kOaaQfzJeXqUftHnUzWuZNvSLURqmOTaM+cDMiiTkvrPixZVGsKRiVYIvw9pQnyNpbBtTY/ugtaFrBK8p4PRFu6osQyMWug9+Y2tA71wZwQPqdSt+o/OFfwKkylF4p7xrQx5JVUCKI2OuwabBqZWSgV8KecDMvFaF2gCmX1lnLJNlkwcXwhHjIAqIM6VRcJREqC2zhdKpeMwWAlqeiBmoHJNTuSbdFQfc59k2QwMVxltb75rXuxU73+yy85NyjnUbKxr7BZmA1JGmR5q+CE3/tkvTz4YE5Ll59C4cmXlk5osw891+Zs5MpY+8PPLyxXj5z70nt8Sm6FmuYnovLLqFjgVo7kTJLo50PdL1hej69u0uXS+cY0YZLQrlCqA4OxL0SNCXIGi9bU93zFggZYZnj6Xxr/J+ENiTZ1CqM9Sp0njGsXNny3A6Up/5u/2ZSVxZf+h3v5QzZXEKjo/rxjxGbBeHHKlA2vWWFT0zorINp5+wIFh/fhQ+fDC2AJI9+cuvI7kL6odGoBj8FF7xIuFQkwAnJhcVZcaq//nw9sSllyd+8Nt+nIhXxorJv/23f02E0eJXnA5N/IAkqjK1kKA7OZXhLPLnAuLu0Wip/oOLdm6aISThdDZMVa9Uivr1UKUaqAoHaJtWa4FPxLzMxdTQX5z4+dNFX7j2BmHmaP1sEp8gphUlpiZZRGLKbZkg4zdMeIJj9EQkpgClT0XAWkzmb6IfGJe/v/tx8t5vLdG+nhoSD7gQyokJ63x1eTP6bTj4+Hnw+eNvw6v+3dWIFdAgOZmcihFb4MPvbXPiER7QiUdFWZicQoEiOC+U9pcMZWhFoix6u049Vbmy3a1HyldPUJQ5bo2AO/VL6ZnxYLdsZjwHmtCGeZW4CkZd3A46R189eX767vR8B+2Rn/HaOdrXEAhB4KUwl1v/Lm4Hp6KfK6aONRWhE68mXf7/dXIimpQTsMu69024QlQ9zo84zYx5aOVMDZ01wTph/Bl+bxAXgJiL62k4m3bEU6nesmWTTzXRZOqGays6Ej7RWZmD8nPJyvrT7ZDE98xVX/vTcFbqE1lGsrc+6PS5PI5kxtnfu5fLJfv2xeZ1zZe/Vmg5wceRnINVvphzuifK8edE9maQO9wxbvWck6/a2noi2tHZttFtYmnOqjnkFX+TkXzAxfr/FGqeDDTZxhaExX7Q87qpyu3NO89WPggOd4QDzoN7x52qeHszHPnJQvh3iMI/XmWY+/Bvb6jxfvsi568tZQ46rYDP4mWQyT//B5xgzD4=
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 df8da83..f6c0afa 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 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
+{"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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 3b389aa..1f32e4f 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.StatusCodes.json b/docs/reference/http-api/unblock-user.StatusCodes.json
index e7b2a8f..90742fd 100644
--- a/docs/reference/http-api/unblock-user.StatusCodes.json
+++ b/docs/reference/http-api/unblock-user.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"Unblocked (idempotent)"},"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
+{"responses":{"204":{"description":"Unblocked (idempotent)"},"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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","invalidCursor"],"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/unblock-user.api.mdx b/docs/reference/http-api/unblock-user.api.mdx
index 93bc123..995f537 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: eJztV1FT20gM/is7ejm4MQlcmXtwe71JaUrTQstAmD4wmUa2FXsbe9fdlQM5xv/9Rus4BcJzn3iKvauVPn36JG/uwdbkkLU1kwxiaExS2nR57clBBIy5h/gGrmyqsYRZBDU6rIjJyfo9+LSgCiG+B17XBDF4dtrkEEGlzRmZnAuIj9oIHP1stKMMYnYNRWCwEvPGk5tkEIE2EEONXEA7E2tfW+PJi+e/Do/lJyOfOl0LUojhusNJmdrTGVW1ZTK8D20Ex4eHu+YTs8JSZ0pgkGeIILVGjogp1nWp08DB8IcX+2cSs8kPSuVg7YQx1h04cs663fxbCZDRc8SQaSrh1FgepaxXBJE8XxJma9m+qwNPYfGCTNad8oxM13WGTB1dIZ8LXJcWw0JZUo7luQ3+GrM09tacCsnB0SerDSalvOVY0YemLCECLJ1Elc1tRHSsU12j4W7hxBGyFTGk3dMJGmP5jDBE6ni6Nr6pa+s6cFJUqe+G9AcrU1ySgQgWTpPJ/FdTSsqOcu25E+Flr5MIdIU5Ta09Q5d3SW2DTMKWEBuBQ6YzXWmJPYue1H2kPEveqsK00IaUVEXpjAzrxVqbXN0Wa4W9LtQCdUnZQKSvuZS6jaXAJ1LL9pGMbzalnz0xvdxIF9q2DWo82lXjufZeYlunNoVUbDtmXmT5IsvfIstXu7L8YllhWdrbkOeLEl+U+FuU+MzXXZS4sI150eGLDn+LDtuneB7fgyviwsr1OKOSWJIJV9UYhljrIZlcGxpuuBred5fadhg8CPWUNk7zOtyYF9pRgp4gvpnJVbffvJL6dFL9ZbIVZcFc90WU94TQBWTdwwfrKmSI4dO3KexS+2HjUE3edxeNSHkyrNCr+ajhwjr9XyhqrN4Ff+pNMHs7V3vWqfm/4e2fubJGfaPkSi7erJo6d5iR3x9IFyWWP1aYPsCMtf5M6/5uXxBmAfHm5j/WOZmDK50b5MbRLmqj6I5FjaVKLP/h1cfz0Yny/QFlV+QUF6ToDlPeCiOx2TpSiQwPxTYYzDEVp3OV2Qq1GaiOazVfHUVvhJe/j9/OXwfTmtxBYlktaa20V3OJuffu6/T71eT0y+TL6fer8cnleCoBeJLtzwdqKgiCAAI2r25xSV7dai6CR48VqS55pU1YslyQU5l2FHANgmC1WdhAXq9R4WdimByG4aPGXZDRxQQiWJHzHU+Hg1eDox32BJUntyJ3gF2BGYMXGSo93tHFZKBOSi1ScLZh8mpv/lDRf8731aaRFO6q6PWG/q5KgbdbSgprl72fxPJwQ/6+8Cl0BkDS1qmMyKCd2nquMIzz/n9h135q03+PktsKjOmOh3WJ2oiTxpWy1zXmjagvzHBJ5Ncggwji7X/Orj9nERTWs5y5v5f8rl3ZtrL8syEnTTuLYIVOh7EsLZxpL88ZxAssPe3A236xYK+fkvtKJtVzsPtmMdIpKywbeYMIlrT+9f+4nbVR30GCoNscpSnV/ODYzvdRBsx2dr0fn42nY2jb/wFNBpFF
+api: eJztV8Fy2zgM/RUOLpvsKHa6m9mD2u2O6zqpu0mbSZzpIeOpIQmWWEukSkJOvBn9+w4oy03q3HvJyRQJgg8PDzD5ALYmh6ytmWYQQ2OS0qarG08OImDMPcS3cG1TjSXMI6jRYUVMTuYfwKcFVQjxA/CmJojBs9Mmhwgqbc7J5FxA/KqNwNH3RjvKIGbXUAQGKzFvPLlpBhFoAzHUyAW0c7H2tTWevHj+4/hEfjLyqdO1IIUYbjqclKkDnVFVWybDh9BGcHJ8vG8+NWssdaYEBnmGCFJrZIuYYl2XOg0cDL95sX8mMJt8o1Q21k4YY92BI+es24+/lQMyeo4YMk0lnBrLo5T1miCS8RVhtpHl+zrwFCYvyWTdLs/IdFNnyNTRFeK5xE1pMUyUJeVYXtjgrzErY+/MmZAcHH202mBSyleOFZ02ZQkRYOnkVFncnYiOdaprNNxNjB0hWxFD2o3GaIzlc8JwUsfTjfFNXVvXgZOkSn63pD+ameGKDESwdJpM5j+bUkJ2lGvPnQivep1EoCvMaWbtObq8C2p3yDQsCbEROGQ615V+Qsy4cd46EexTHYyUZ+FBVZgW2pCSLCmdkWG93GiTq7tio7DXiVqiLikbSCloLiWPE0n4WHLbPpH17VYK859Mr7ZShrZtgzpf7avzQnsvZ1untvgV246pF5m+yPSXyPTPfZl+sqywLO1dCOFFmS/K/CXKfOY2IMpc2sa86PJFl79El+3PeJ7eoyviwsr1OqOSWIILV90YhljrIZlcGxpuuRs+dJfidhg8SCoobZzmTbhxL7WjBD1BfDuXq3K/eC356qT7w2Qn0oK57pMq3wmhC8i6wal1FTLE8PHLDPapPd06VNP33cUkUp4MK/RqMWq4sE7/F5Icq3fBn3oTzN4u1IF1avFP+Pp7oaxRXyi5los7q6bOHWbkDwdSVYnlDxWmjzBjrf+lTf82KAizgHj7cpjonMzRtc4NcuNoH7VRdM+izlIlln/z6sPFaKx8v0HZNTnFBSm6x5R3wkhstolUIs1EsQ0GC0zF6UJltkJtBqrjWi3Wr6I3wstfJ28Xr4NpTe4osaxWtFHaq4WcefDu8+zr9fTs0/TT2dfryfhqMpMDeJodLgZqJgiCAAI2r+5wRV7daS6CR48VqS54pU2YslyQU5l2FHANgmC1WdpAXq9R4WdqmByGZqQm3SGjyylEsCbnO56OByeD4z32BJUntyZ3hF2CGYMXaTI93tHldKDGpRYpONsweXWweKzo3xeHaltICvdV9HpLf5elwNsdJYW1q95PYnm4Jf9Q+BQ6AyAp61RaZtBObT1XGNp7/67syk9t6+9JcDuBMd3zsC5RG3HSuFLWusK8FfWFni6B/GhsEEG8e7N29TmPoLCeZc/Dg8R348q2lenvDTkp2nkEa3Q6tGkp4Ux7GWcQL7H0tAdv9w8GB33XPFTSqZ6D3ReLkUpZY9nIF0Swos2P93U7b6O+ggRBtzhKU6r50ba9/0tpMLve9X5yPplNoG3/BykRqJk=
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.StatusCodes.json b/docs/reference/http-api/unregister-device.StatusCodes.json
index cdf890b..11e846a 100644
--- a/docs/reference/http-api/unregister-device.StatusCodes.json
+++ b/docs/reference/http-api/unregister-device.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"204":{"description":"Deregistered (idempotent)"},"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"}}}}}}
\ No newline at end of file
+{"responses":{"204":{"description":"Deregistered (idempotent)"},"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","invalidCursor"],"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/unregister-device.api.mdx b/docs/reference/http-api/unregister-device.api.mdx
index 3068552..374a1f1 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: 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/s396wJ6gCuTX5I+xazBjjCIzZYd3eD3pq1FpRAreNUxBHc2fa/n3eU9tfaTwUEVvt/R3XYq8PdCicG61i7NwPNiS3xM+hc4ISFydyYSM2qld4ArjNN+q46f71N5+v1S4VxnTIw/qEo2VSI0vZa/z5b1IMM5xqSYaOIaJ7oQEUvm4zRIoXGA5/fQk5d35sm1l+UdDXjw7S2CN3sShLA7WJsizhnSJZaADYPvvFRztZmRPyZx6DfDOK1aMssaykTdIYEWb7de3nbXJzj2SvtsZZhnV/OzOwadRhst+Yp2NL8fTMbTt/2Qj3Xc=
+api: eJxtVU1v2zgQ/SvEXDZeKHayCPagdrtwHSd1m7RB4qKHwKjH4lhiLZEqOXLiDfTfF0PZblLHF4tfM49v3hs+gavJIxtnJxpSaKyn3AQmf05rkxEkwJgHSO/hmmCWQI0eK2LyMvcEISuoQkifgDc1QQqBvbE5JFAZe0U25wLS0zYBTz8b40lDyr6hBCxWsn1pNCRgLKRQIxfQzmRrqJ0NFCTsXydn8qcpZN7UghNSOKcdStLqyGiqasdkuQdtAmcnp4cnrk0IxubKeWXsGkujFbsVWUggc1bOyhms69JkkY3BjyAHX7mhW/ygjCGB2gt3bDqg5L3zh0S0kkDTawyRbSoh1joeZmzWQrZ1fEuoN7L8WEfC4uQNWd2dCoxMX2uNTB118TY3uCkdxomypBzLaxfjNXZl3YO9FLZjoI/OWFyUMsqxooumLCEBLL1klcV9RvRsMlOj5W5i5AnZeWGs+xqhtY6vCGOmjqevNjR17XwHrgnkpdCTDuSzmSl25C+9IavDF1vKlbuqdnK83QkmAVNhTlPnrtDn3aX2SSZxSYhNwCPTlanMC2JGjQ/Oi3JfCmKoAgsPqsKsMJaUVEkZTZbNciNSeSg2CpXolgKrJZqSdF/8YLiUOo6l4COpbftC3/dbKcx+23q7lTW08vsdzyvGq4gLJ6bUVBLLTLRICgOszYBsbiwNKhroeCAMnpZGt1IJyhpveBMNujSeFhgI0vuZmGu3eCfl6pT7a8teowVzvaupjBeEnqT03ceF8xUypPDx2xQOmb3YBlST885liQpkWWFQ82HDhfPmv1jjVL2P8dTbuO3dXB05r+b/xtE/c+Ws+kaLO5etiFVT5x41hV5fTLVw/KHC7BlmrM0n2uy6SUGoI+JtoxmbnOzxncktcuPpELVV9MgizlItHP8R1Ifr4UiF3QHl1uQVF6ToETPe62Lh9CZRC9dY6ShxwxwzCTpX2lVobF91XKv5+jR5K7z8ffZu/iZurckfLxyrFW2UCWouOY/ef5l+v5tcfp58vvx+Nx7djqeSgCe6N++rqSCIpY/YgnrAFQX1YLiIEQNWpLrLK2PjlOOCvNLGU8TVj3o1dukieTuJCj8Ty+Qx9iI17pIMbyaQwJp86Hg66Z/1Tw7YE1SB/Jr8MXYFZoxRpMfs8A5vJn01Ko1IwbuGKaij+XMt/znvqa2PFB6q6M2W/q5KkbcHWhTOrXZxFo4HW/J7wqfQGQGJqzPpmFE7tQtcYezuW3X8cp/a2+/FDfcqY3rkQV2isRKp8aWsdb68FwnGvi63iQaOYaI7IYFUHrtZAoULLLufnuR6X33ZtjL9syEvnp0lsEZvYpMWB2sT5FtDusQy0AGw/fsFR7ue2VPSp14DvPOKFaOssWxkBAmsaLN9jdtZm+zcI+m7lWGWUc3Pzhw8ldJc9h3rfHw1no6hbf8HaMfjTA==
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.StatusCodes.json b/docs/reference/http-api/update-display-name.StatusCodes.json
index e8e4a6b..26e0eb2 100644
--- a/docs/reference/http-api/update-display-name.StatusCodes.json
+++ b/docs/reference/http-api/update-display-name.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The new display name","content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string"}},"required":["displayName"],"title":"DisplayNameUpdated"}}}},"400":{"description":"Invalid display name","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"}}}}}}
\ No newline at end of file
+{"responses":{"200":{"description":"The new display name","content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string"}},"required":["displayName"],"title":"DisplayNameUpdated"}}}},"400":{"description":"Invalid display name","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","invalidCursor"],"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","invalidCursor"],"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/update-display-name.api.mdx b/docs/reference/http-api/update-display-name.api.mdx
index 7c6e933..8689f05 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/SuLuTQuaMlugx6YNIWiOIkS2zH8gRwMIRqSY3IjcpfZHUpWDf33YnYpWbGNHgqkp/DE3R3OzJt585Z3YFtyyNqaSQEpdG2BTG+0b2tcnWJDkABj6SG9hhOCaQKOvnXk+bUtVpDehaV2VEDKrqMEcmuYDMsRtm2t8+B7+NVbI3s+r6hBeeNVS5CCzb5SzpBA6yQT1uTltNjJ4N7Ys9OmhAQabY7JlFxBephAg7eb1fOD9TrZSer6O0/TBFhzLa52IF4FzLBex099a42PWfx2cBCSIZ873QoQSOGyImVoqXrHysQq/R/A/yu2ogf3/Ck8E7PAWhc/CA85Z90TSCRA8WRvyXSNgDOWRznrhSRjLJ8TFis5vm0D/LB5RqaIX3lG3qJNQEdQZ7iqLYaNuqYS6xMb/HVmbuzSvItQjeUPVhvMalmV2NDbrq4hAaydRJXDbUR0rHPdouG4MXaEbJ1ULL6N0RjLx4QhUqzTlfFd21oXk+s8OalyX/mdnUuck4EEbpwmU/hPphbIjkrtOU7p+ab9CegGS7q09hhdGUFtg0zCkRQ2AYdMx7rREnuaPGj+SHkW3KrBvNKGlHRF6YIM65uVNqVaViuFqp96dYO6pmIA92Q7kgaPpZcP2RlbP31get4P2JaSh48peaK9l9jWqb6Rim2szE9a/qTlD6fl+mE+T12LDXFl5c5su8AvlPsHhtjqIZlSGxo2NOxFdb8XVU955zSvIL2+gxvtKENPkF5P19P7wwvpTaTpvcmWkBVzu2mgrDNCR9Ln+PLWugYZUvjw+RIel/Vt71BN3sSRSpQnwwq9mo06rqzTf4eGpup18KdeBrNXM/XMOjX7K6z+nClr1GfKLmw+J1ZdWzosyO8NZIIyy+8bzHdyxlZ/pFXgvyAgLELGoSgpHOmSzP6FLg1y5+hx1kbRLQsTa5VZ/sWr9yejsfKbD5RdkFNckaJbzHlLiswWq0RltjMiH8Fghrk4nanCNqjNQMVaq9niMHkpdfnj+avZi2DaktvPLKs5rZT2aiYxn73+dPnlYvLudHL67svF0fj86FIC8KTYmw2U/BjEzofcvFrinLxaaq6CR48NqQheaRO2LFfkVKEdhbwGgayiZef3f1lHt9i0NT36OdjRLG1ubCj3htFS0YlhchikSh3FtEZnE0hgQc7Hyh4Mfh8cPqq34PDkFuT2MVKCMXgRCdogHJ1NBmpcayGPsx2TV89mu+T/dban+rFT+Jh3L/qGxb6GSi8pq6ydb/xklod9u/akA9KAkJCIQC6CGtjWWs8NBvHv+RSHVfXTqvpx/Q7jlplMtzxsa9RGfHWulrM4ytdC2yD8gicMvLjZHehpApX1LLZ3dwLvytXrtWx/68jJlE8TWKDTQcNlzJMN+0UA5rSCFMbxRtvvdXGBdRdn5sHttk42X4zynFr+V9vpjj6dXYkSZP0PexPuN3C4DCK8hBQgARsKEzQn7N1BjabssBTb6FKefwDp7z+I
+api: eJztVk1v2zgQ/SvEXLZZKHa6CPagdrtw3bR1N0mDfKCHwKhH0kRiLZEqObLjDfzfF0PKjvOBPSywPVUnkRwO5715M+Qd2JYcsrZmUkAKXVsg0zvt2xpXp9gQJMBYekiv4YRgmoCj7x15fmuLFaR3YagdFZCy6yiB3Bomw7KEbVvrPPgefvPWyJzPK2pQ/njVEqRgs2+UMyTQOomENXlZLXYiuDf27LQpIYFGm2MyJVeQvkygwdvN6PBgvU52grp+4GmaAGuuxdUOxKuAGdbruNW31vgYxW8HByEY8rnTrQCBFC4rUoaWqnesTGTpRwD/r9iKHtzhc3gmZoG1Lv4nPOScdc8gkQOKZ3NLpmsEnLE8ylkvJBhj+ZywWMnybRvgh8kzMkXc5Rl5izYBHUGd4aq2GCbqmkqsT2zw15m5sUvzIUI1lj9ZbTCrZVRiQ++7uoYEsHZyqixuT0THOtctGo4TY0fI1glj8W+Mxlg+JgwnRZ6ujO/a1roYXOfJCcs98zszlzgnAwncOE2m8J9NLZAdldpzrNLzTfoT0A2WdGntMboygtoeMglLQmwCDpmOdaMfEDPunLdORPNQDCPlWXhQDeaVNqQkS0oXZFjfrLQp1bJaKVR9F1A3qGsqBnAvviNJ+Fhy+1itUQrTR6bnfcFtJfryqURPtPdytnWqj1+xjUz9lOlPmf5wma4fx/PctdkQV1bu1LYLekO5n2CIrR6SKbWhYUPDvunu903XU945zStIr+/gRjvK0BOk19P19H7xQnIVZXtvshVoxdxuEirjjNCR5D3+vLeuQYYUPn25hKe0vu8dqsm7WGKJ8mRYoVezUceVdfrvkOBUvQ3+1Otg9mamXlinZn+G0R8zZY36QtmFzefEqmtLhwX5vYFUVGb5Y4P5TszY6r9oFdIuCAiLEHEgJYUjXZLZv9ClQe4cPY3aKLplUWatMsu/ePXxZDRWfrNB2QU5xRUpusWct6LIbLFKVGY7I+0kGMwwF6czVdgGtRmoyLWaLV4mr4WX3w/fzF4F05bcfmZZzWmltFczOfPF28+XXy8mH04npx++XhyNz48u5QCeFHuzgZKHQ8x8iM2rJc7Jq6XmKnj02JCK4JU2YcpyRU4V2lGIaxDEKr3t/P4VdnSLTVvTk8fDTg/T5sYGujeKFkYnhslhaF3qKIY1OptAAgtyPjJ7MDgcHDzhW3B4cgty+xglwRi8SEvaIBydTQZqXGsRj7Mdk1cvZrvi/3W2p/qyU/hUd6/6hMW8BqaXlFXWzjd+MsvDPl17kgFJQAhImkAuDTaorbWeGwyXQa+nWKyqr1bVl+sDjFtlMt3ysK1RG/HVuVrWYilfi2zDRSB4QsGLm92CniZQWc9ie3cn8K5cvV7L9PeOnFT5NIEFOh16upR5slG/NIA5rSCFcbzh9vs+ucC6izXz6LZbJ5sdozynlv/VdrrTn86upBNk/YO+CfcdOFyGpryEFCABG4gJPSfM3UGNpuywFNvoUr5/AN51SzI=
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.StatusCodes.json b/docs/reference/http-api/update-username.StatusCodes.json
index aa94071..a66184a 100644
--- a/docs/reference/http-api/update-username.StatusCodes.json
+++ b/docs/reference/http-api/update-username.StatusCodes.json
@@ -1 +1 @@
-{"responses":{"200":{"description":"The new username","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"],"title":"UsernameUpdated"}}}},"400":{"description":"Invalid username","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"}}}},"409":{"description":"Username already taken","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 new username","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"],"title":"UsernameUpdated"}}}},"400":{"description":"Invalid username","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","invalidCursor"],"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","invalidCursor"],"description":"A stable machine code identifying why a request failed.","title":"ErrorCode"}},"required":["error"],"title":"ErrorResponse"}}}},"409":{"description":"Username already taken","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","invalidCursor"],"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/update-username.api.mdx b/docs/reference/http-api/update-username.api.mdx
index 99f532e..cb8adb7 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: eJztV9tu20YQ/ZXFvNQuaMm5oECZNIWsOolSOzF8QR4MIRqRY3IjcpfZHUpWDf17MbuUpVhGgT4kT/aLubeZOWfOzK7uwDbkkLU1oxxSaJscma48OYM1QQKMhYf0Gk4Jxgk4+taS5yObLyG9C0PtKIeUXUsJZNYwGZYlbJpKZ8Fw/6u3RuZ8VlKN8sXLhiAFO/1KGUMCjZMwWJOX1XbtfrPTs9OmgARqbU7IFFxC+iKBGm/Xo+eHq1WyFdH1xsw4AdZciZ01squAE1areMg31vjo/PnhofzLyWdONxI/pHBZkjK0UO2GmB+O9f/DyTs8Lx+DMDJzrHT+AyCQc9Y9Er84yB9NIpm2FkjG8iBjPZdgjOVzwnwpy7dNAB0mz8jk8ZRnkWaHNAEdAZ3hsrIYJqqKCqxObbDXmpmxC/MuQjWWP1htcFrJqMCa3rZVBQlg5cSrLN57RMc60w0ajhNDR8jWCWPxa4jGWD4hDJ4iT1fGt01jXQxuzXLH+tbMJc7IQAI3TpPJ/SdTCWRHhfYcC/F8nfQEdI0FXVp7gq6IoO6djMKSEJuAQ6YTXWvxPU4eJH6gPAtuVWNWakNKsqJ0Tob1zVKbQi3KpULV1ba6QV1R3oONyo4lwUPJ5UNNxtSPH2w97+rpXo7PduV4qr0X39apLpGKbWTmSZZPsvwpsvx9V5brhqq6BCjGJ1E+ifIniXL1MJ6d51hNXFp5qDVtEBfK0wf62Og+mUIb6tfU37riPWWt07yE9PoObrSjKXqC9Hq8Gm8WLyQpUZ+bLfdKLJmbdeZkPCV0JAmOH2+tq5EhhQ+fL2GXz7edQTX6Kzb4RHkyrNCryaDl0jr9T8hkqo6CPfU6bHszUXvWqcmfYfTHRFmjPtP0wmYzYtU2hcOc/H5PSmdq+X2N2VbM2Oi/aRmELwgI8xBxfGjBsS7IHFzowiC3jnajNopuWTis1NTyL169Px0MlV8fUHZOTnFJim4x43s1TG2+TNTUtkYus7BhgpkYnajc1qhNT0Wu1WT+LHktvPz28s3kVdjakDuYWlYzWirt1UR87h19uvxyMXr3cfTx3ZeL4+H58aU44FG+P+kpeZXGrIfYvFrgjLxaaC6DRS+NLIJX2oQpyyU5lWtHIa5eUKk0sfPNy/74Fuumou9fp1udSpsbG7he61joHBkmh6FBqeMY0+BsBAnMyflI62HvRe/ZDtkCwpObkzvAqAfGYEUazxre4GzUU8NKi3KcbZm82ptsq/7Xyb7qik3hruheddmKSQ00L2haWjtb25la7ne52hf6hf0QkJR+Jm00SK2xnmsMLb/jJZao2qrR7/DdS5LplvtNhdqIndZVshbr91r0Glq9YAlVvtUEpWWU1rPsu7sTWFeuWq1k+ltLTkp7nMAcnQ4dW2o7WUteqn5GS0hhGO+vg64LzrFqY6E8uMtWyfrEIMuo4f/cO95qSGdXUv7T7pdhHW4zcLgILXcBKUACNpASGk2Yu4MKTdFiIXujSfn7F0RVGQs=
+api: eJztV01v20YQ/SuLuTQuaMlJgwBl0hSyaidK7cTwB3IwhGhEjsmNyF1mdyhZNfTfi9mlLNkKCvQQ5GJdxP3gzLw3b2aXd2AbcsjamlEOKbRNjkxXnpzBmiABxsJDeg2nBOMEHH1ryfOhzZeQ3oWhdpRDyq6lBDJrmAzLEjZNpbNguP/VWyNzPiupRnniZUOQgp1+pYwhgcZJGKzJy2q7dr/Z6dlpU0ACtTYnZAouIf0tgRpv16MXB6tVshXR9cbMOAHWXImdNbKrgBNWq/iSb6zx0fmLgwP5y8lnTjcSP6RwWZIytFDthpgfjvX/w8k7PC+/B2Fk5ljp/AdAIOes+0784iD/bhLJtLVAMpYHGeu5BGMsnxPmS1m+bQLoMHlGJo9veRZpdkgT0BHQGS4ri2GiqqjA6tQGe62ZGbsw7yJUY/mD1QanlYwKrOm4rSpIACsnXmXx3iM61plu0HCcGDpCtk4Yi09DNMbyCWHwFHm6Mr5tGuticGuWO9a3Zi5xRgYSuHGaTO4/mUogOyq051iI5+ukJ6BrLOjS2hN0RQR172QUloTYBBwynehaPyBm2DpvnajloRAGyrPwoGrMSm1ISZaUzsmwvllqU6hFuVSoulpXN6grynuwUd2RJHwouX2s0SiF8aOt51193cvz+a48T7X34ts61cWv2EamnmT6JNOfItPfd2W6briqS4hifBLpk0h/kkhXj+PZub7VxKWVi13TBrGhXJWgj43ukym0oX5N/a0rgaesdZqXkF7fwY12NEVPkF6PV+PN4oUkKep1s+VemSVzs86kjKeEjiTh8eHYuhoZUvjw+RJ2+TzuDKrRX/EASJQnwwq9mgxaLq3T/4TMpuow2FNvwra3E/XMOjX5M4z+mChr1GeaXthsRqzapnCYk9/rSSlNLb+vMduKGRv9Ny1DvgUBYR4ijhczONIFmf0LXRjk1tFu1EbRLQuHlZpa/sWr96eDofLrF5Sdk1NckqJbzPheDVObLxM1ta2Rwy5smGAmRicqtzVq01ORazWZP0/eCC+vXr6dvA5bG3L7U8tqRkulvZqIz2eHny6/XIzefRx9fPfl4mh4fnQpDniU7016Sm6xMeshNq8WOCOvFprLYNFLY4vglTZhynJJTuXaUYirF1QqTe188yVwdIt1U9HD2+xW59Lmxgau1zoWOkeGyWFoWOooxjQ4G0ECc3I+0nrQe9k72CFbQHhyc3L7GPXAGKxII1rDG5yNempYaVGOsy2TV88m26r/dbKnumJTuCu61122YlIDzQualtbO1namlvtdrvaEfmE/BCSln0lbDVJrrOcawxHQ8RJLVG3V6AN895JkuuV+U6E2Yqd1lazF+r0WvYbWL1hClW81RWkZpfUs++7uBNaVq1Yrmf7WkpPSHicwR6dDB5faTtaSl6qf0RJSGMbzbL/rinOs2lgoj862VbJ+Y5Bl1PB/7h1vNaSzKyn/afclWYfTDRwuQgteQAqQgA2khEYT5u6gQlO0WMjeaFJ+/wKcFiqK
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 90debc2..cba9d61 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L15)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:15](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L96)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:96](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L97)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:97](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L102)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:102](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L105)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:105](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L101)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:101](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L108)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:108](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L116)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:116](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L100)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:100](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L139)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:139](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L142)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:142](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L155)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:155](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L156)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:156](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L145)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:145](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L141)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:141](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L152)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:152](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L32)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:32](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L39)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:39](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L37)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:37](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L40)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:40](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L41)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:41](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L42)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:42](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L34)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:34](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L33)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:33](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L38)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:38](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/commit.ts#L38)
***
### NextDeadline
-Defined in: [eigen-server/packages/kernel/src/timing.ts:48](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:48](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L49)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:49](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L50)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:50](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/timing.ts#L50)
***
### ObservationFrame
-Defined in: [eigen-server/packages/kernel/src/observe.ts:12](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/observe.ts#L12)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:12](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/observe.ts#L14)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:14](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/observe.ts#L15)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:15](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/observe.ts#L13)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:13](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/observe.ts#L13)
***
### PlayerInput
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:26](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L26)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:26](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:29](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L31)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:31](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L27)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:27](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L34)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:34](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L28)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:28](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/ratings.ts#L28)
***
### RatingDelta
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:54](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L54)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:54](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L62)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:62](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L59)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:59](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:63](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L55)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:55](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L60)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:60](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L57)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:57](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L56)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:56](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L61)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:61](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L58)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:58](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/ratings.ts#L58)
***
### RatingResult
-Defined in: [eigen-server/packages/kernel/src/ratings.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L47)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:47](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:48](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/ratings.ts#L48)
***
### Rejected
-Defined in: [eigen-server/packages/kernel/src/errors.ts:42](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L42)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:42](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L44)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:44](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L45)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:45](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L43)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:43](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/errors.ts#L43)
***
### Seat
-Defined in: [eigen-server/packages/kernel/src/commit.ts:47](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L47)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:47](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L50)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:50](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:48](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L51)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:51](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L49)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:49](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/commit.ts#L49)
***
### SeatView
-Defined in: [eigen-server/packages/kernel/src/guards.ts:86](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L86)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:86](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L87)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:87](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L88)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:88](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/kernel/src/guards.ts#L88)
***
### StateRow
-Defined in: [eigen-server/packages/kernel/src/commit.ts:56](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L56)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:56](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:63](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L59)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:59](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L65)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:65](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L60)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:60](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L58)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:58](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L66)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:66](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L57)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:57](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L137)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:137](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:29](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L73)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:73](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/schema.ts#L13)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:13](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L20)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:20](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L132)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:132](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L25)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:25](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L26)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:26](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L36)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:36](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/schema.ts#L63)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:63](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L16)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:16](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:48](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L69)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:69](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L166)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:166](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L67)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:67](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L196)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:196](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L30)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:30](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/timing.ts#L38)
+Defined in: [eigen-server/packages/kernel/src/timing.ts:38](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L73)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:73](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/rng.ts#L29)
+Defined in: [eigen-server/packages/kernel/src/rng.ts:29](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/ratings.ts#L68)
+Defined in: [eigen-server/packages/kernel/src/ratings.ts:68](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/observe.ts#L25)
+Defined in: [eigen-server/packages/kernel/src/observe.ts:25](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/commit.ts#L160)
+Defined in: [eigen-server/packages/kernel/src/commit.ts:160](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/schema.ts#L40)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:40](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/schema.ts#L51)
+Defined in: [eigen-server/packages/kernel/src/schema.ts:51](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/rng.ts#L18)
+Defined in: [eigen-server/packages/kernel/src/rng.ts:18](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/errors.ts#L48)
+Defined in: [eigen-server/packages/kernel/src/errors.ts:48](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/kernel/src/guards.ts#L100)
+Defined in: [eigen-server/packages/kernel/src/guards.ts:100](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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 3de0de8..cccba16 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/helpers.ts#L14)
+Defined in: [eigen-server/packages/rules/src/helpers.ts:14](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L122)
+Defined in: [eigen-server/packages/rules/src/contract.ts:122](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L125)
+Defined in: [eigen-server/packages/rules/src/contract.ts:125](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L124)
+Defined in: [eigen-server/packages/rules/src/contract.ts:124](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L126)
+Defined in: [eigen-server/packages/rules/src/contract.ts:126](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L128)
+Defined in: [eigen-server/packages/rules/src/contract.ts:128](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L123)
+Defined in: [eigen-server/packages/rules/src/contract.ts:123](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/rules/src/contract.ts#L123)
***
### ApplyLifecycleArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:140](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L140)
+Defined in: [eigen-server/packages/rules/src/contract.ts:140](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L149)
+Defined in: [eigen-server/packages/rules/src/contract.ts:149](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L146)
+Defined in: [eigen-server/packages/rules/src/contract.ts:146](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L151)
+Defined in: [eigen-server/packages/rules/src/contract.ts:151](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L141)
+Defined in: [eigen-server/packages/rules/src/contract.ts:141](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L148)
+Defined in: [eigen-server/packages/rules/src/contract.ts:148](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L221)
+Defined in: [eigen-server/packages/rules/src/contract.ts:221](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L223)
+Defined in: [eigen-server/packages/rules/src/contract.ts:223](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L222)
+Defined in: [eigen-server/packages/rules/src/contract.ts:222](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L224)
+Defined in: [eigen-server/packages/rules/src/contract.ts:224](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L225)
+Defined in: [eigen-server/packages/rules/src/contract.ts:225](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/rules/src/contract.ts#L225)
***
### BotSeatableArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:206](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L206)
+Defined in: [eigen-server/packages/rules/src/contract.ts:206](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L208)
+Defined in: [eigen-server/packages/rules/src/contract.ts:208](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L207)
+Defined in: [eigen-server/packages/rules/src/contract.ts:207](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/rules/src/contract.ts#L207)
***
### ComputeObservationArgs
-Defined in: [eigen-server/packages/rules/src/contract.ts:170](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L170)
+Defined in: [eigen-server/packages/rules/src/contract.ts:170](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L182)
+Defined in: [eigen-server/packages/rules/src/contract.ts:182](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L185)
+Defined in: [eigen-server/packages/rules/src/contract.ts:185](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L178)
+Defined in: [eigen-server/packages/rules/src/contract.ts:178](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L172)
+Defined in: [eigen-server/packages/rules/src/contract.ts:172](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L177)
+Defined in: [eigen-server/packages/rules/src/contract.ts:177](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L171)
+Defined in: [eigen-server/packages/rules/src/contract.ts:171](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/rules/src/contract.ts#L171)
***
### Envelope
-Defined in: [eigen-server/packages/rules/src/contract.ts:81](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L81)
+Defined in: [eigen-server/packages/rules/src/contract.ts:81](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L89)
+Defined in: [eigen-server/packages/rules/src/contract.ts:89](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L87)
+Defined in: [eigen-server/packages/rules/src/contract.ts:87](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L85)
+Defined in: [eigen-server/packages/rules/src/contract.ts:85](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L92)
+Defined in: [eigen-server/packages/rules/src/contract.ts:92](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L348)
+Defined in: [eigen-server/packages/rules/src/contract.ts:348](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L356)
+Defined in: [eigen-server/packages/rules/src/contract.ts:356](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L264)
+Defined in: [eigen-server/packages/rules/src/contract.ts:264](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L319)
+Defined in: [eigen-server/packages/rules/src/contract.ts:319](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L266)
+Defined in: [eigen-server/packages/rules/src/contract.ts:266](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L277)
+Defined in: [eigen-server/packages/rules/src/contract.ts:277](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L284)
+Defined in: [eigen-server/packages/rules/src/contract.ts:284](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L306)
+Defined in: [eigen-server/packages/rules/src/contract.ts:306](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L292)
+Defined in: [eigen-server/packages/rules/src/contract.ts:292](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L270)
+Defined in: [eigen-server/packages/rules/src/contract.ts:270](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L300)
+Defined in: [eigen-server/packages/rules/src/contract.ts:300](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L241)
+Defined in: [eigen-server/packages/rules/src/contract.ts:241](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L247)
+Defined in: [eigen-server/packages/rules/src/contract.ts:247](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L249)
+Defined in: [eigen-server/packages/rules/src/contract.ts:249](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L245)
+Defined in: [eigen-server/packages/rules/src/contract.ts:245](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L243)
+Defined in: [eigen-server/packages/rules/src/contract.ts:243](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L116)
+Defined in: [eigen-server/packages/rules/src/contract.ts:116](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L113)
+Defined in: [eigen-server/packages/rules/src/contract.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L119)
+Defined in: [eigen-server/packages/rules/src/contract.ts:119](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L118)
+Defined in: [eigen-server/packages/rules/src/contract.ts:118](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/json.ts#L23)
+Defined in: [eigen-server/packages/rules/src/json.ts:23](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L96)
+Defined in: [eigen-server/packages/rules/src/contract.ts:96](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L98)
+Defined in: [eigen-server/packages/rules/src/contract.ts:98](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L103)
+Defined in: [eigen-server/packages/rules/src/contract.ts:103](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L192)
+Defined in: [eigen-server/packages/rules/src/contract.ts:192](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L193)
+Defined in: [eigen-server/packages/rules/src/contract.ts:193](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L195)
+Defined in: [eigen-server/packages/rules/src/contract.ts:195](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L199)
+Defined in: [eigen-server/packages/rules/src/contract.ts:199](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L196)
+Defined in: [eigen-server/packages/rules/src/contract.ts:196](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L198)
+Defined in: [eigen-server/packages/rules/src/contract.ts:198](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L197)
+Defined in: [eigen-server/packages/rules/src/contract.ts:197](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L194)
+Defined in: [eigen-server/packages/rules/src/contract.ts:194](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/rules/src/contract.ts#L194)
***
### Rng
-Defined in: [eigen-server/packages/rules/src/contract.ts:53](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L53)
+Defined in: [eigen-server/packages/rules/src/contract.ts:53](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L54)
+Defined in: [eigen-server/packages/rules/src/contract.ts:54](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L43)
+Defined in: [eigen-server/packages/rules/src/contract.ts:43](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L34)
+Defined in: [eigen-server/packages/rules/src/contract.ts:34](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L338)
+Defined in: [eigen-server/packages/rules/src/contract.ts:338](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L230)
+Defined in: [eigen-server/packages/rules/src/contract.ts:230](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L31)
+Defined in: [eigen-server/packages/rules/src/contract.ts:31](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L28)
+Defined in: [eigen-server/packages/rules/src/contract.ts:28](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/json.ts#L10)
+Defined in: [eigen-server/packages/rules/src/json.ts:10](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L138)
+Defined in: [eigen-server/packages/rules/src/contract.ts:138](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L25)
+Defined in: [eigen-server/packages/rules/src/contract.ts:25](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L68)
+Defined in: [eigen-server/packages/rules/src/contract.ts:68](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L71)
+Defined in: [eigen-server/packages/rules/src/contract.ts:71](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L69)
+Defined in: [eigen-server/packages/rules/src/contract.ts:69](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L70)
+Defined in: [eigen-server/packages/rules/src/contract.ts:70](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L74)
+Defined in: [eigen-server/packages/rules/src/contract.ts:74](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L72)
+Defined in: [eigen-server/packages/rules/src/contract.ts:72](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/contract.ts#L168)
+Defined in: [eigen-server/packages/rules/src/contract.ts:168](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/rules/src/helpers.ts#L24)
+Defined in: [eigen-server/packages/rules/src/helpers.ts:24](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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 fac9e82..96d90f0 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L70)
+Defined in: [eigen-server/packages/server/src/testing.ts:70](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L72)
+Defined in: [eigen-server/packages/server/src/testing.ts:72](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L77)
+Defined in: [eigen-server/packages/server/src/testing.ts:77](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L73)
+Defined in: [eigen-server/packages/server/src/testing.ts:73](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L74)
+Defined in: [eigen-server/packages/server/src/testing.ts:74](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L75)
+Defined in: [eigen-server/packages/server/src/testing.ts:75](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L71)
+Defined in: [eigen-server/packages/server/src/testing.ts:71](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L36)
+Defined in: [eigen-server/packages/server/src/testing.ts:36](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L60)
+Defined in: [eigen-server/packages/server/src/testing.ts:60](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L80)
+Defined in: [eigen-server/packages/server/src/testing.ts:80](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L99)
+Defined in: [eigen-server/packages/server/src/testing.ts:99](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/testing.ts#L66)
+Defined in: [eigen-server/packages/server/src/testing.ts:66](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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 a3d78c6..2e455cf 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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:271](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L271)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:271](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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:729](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L729)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:729](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/do/game-do.ts#L729)
###### Returns
@@ -199,7 +199,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:729](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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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,7 +220,7 @@ subclass picks the D1 database off its own Env.
fetch(request): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:753](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L753)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:753](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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:932](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L932)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:932](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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:717](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L717)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:717](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -351,7 +351,7 @@ GameStub.repokeFinish
session(gameId, userId): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:776](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L776)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:776](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/do/game-do.ts#L776)
The snapshot over RPC, for the HTTP paths that have no socket.
@@ -378,7 +378,7 @@ GameStub.session
webSocketClose(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:786](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L786)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:786](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/do/game-do.ts#L786)
###### Returns
@@ -390,7 +390,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:786](https://github.
webSocketError(_ws, error): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:792](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L792)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:792](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/do/game-do.ts#L792)
###### Parameters
@@ -409,7 +409,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:792](https://github.
webSocketMessage(): Promise;
```
-Defined in: [eigen-server/packages/server/src/do/game-do.ts:781](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/do/game-do.ts#L781)
+Defined in: [eigen-server/packages/server/src/do/game-do.ts:781](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/do/game-do.ts#L781)
###### Returns
@@ -419,7 +419,7 @@ Defined in: [eigen-server/packages/server/src/do/game-do.ts:781](https://github.
### HttpError
-Defined in: [eigen-server/packages/server/src/http.ts:38](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/http.ts#L38)
+Defined in: [eigen-server/packages/server/src/http.ts:41](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/http.ts#L41)
#### Extends
@@ -437,7 +437,7 @@ new HttpError(
retryAfterSeconds?): HttpError;
```
-Defined in: [eigen-server/packages/server/src/http.ts:46](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/http.ts#L46)
+Defined in: [eigen-server/packages/server/src/http.ts:49](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/http.ts#L49)
###### Parameters
@@ -466,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/http.ts#L40)
+Defined in: [eigen-server/packages/server/src/http.ts:43](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/http.ts#L43)
##### retryAfterSeconds
@@ -474,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/http.ts#L44)
+Defined in: [eigen-server/packages/server/src/http.ts:47](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/http.ts#L47)
Seconds the caller should wait before retrying, rendered as the
`Retry-After` header. Set only on a 429 (see `ErrorCode.rateLimited`);
@@ -486,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/http.ts#L39)
+Defined in: [eigen-server/packages/server/src/http.ts:42](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/http.ts#L42)
## Interfaces
### AuthClaims
-Defined in: [eigen-server/packages/server/src/auth/firebase.ts:18](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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;
@@ -507,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L21)
##### isAnonymous
@@ -515,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L20)
##### name
@@ -523,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L22)
##### picture
@@ -531,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L23)
##### uid
@@ -539,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -558,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L296)
##### budgetSeconds
@@ -566,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L300)
##### config
@@ -574,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L298)
##### createdBy
@@ -582,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L294)
##### gameId
@@ -590,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L293)
##### incrementSeconds
@@ -598,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L301)
##### maxPlayers
@@ -606,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L305)
##### minPlayers
@@ -614,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L304)
##### now
@@ -622,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L308)
##### rated
@@ -630,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L302)
##### ratingPool
@@ -638,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L303)
##### schemaVersion
@@ -646,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L297)
##### seats
@@ -654,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L307)
##### shortCode
@@ -662,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L306)
##### status
@@ -670,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L295)
##### turnSeconds
@@ -678,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L99)
+Defined in: [eigen-server/packages/server/src/engine.ts:99](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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`
@@ -705,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L106)
+Defined in: [eigen-server/packages/server/src/engine.ts:106](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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;
@@ -719,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L128)
+Defined in: [eigen-server/packages/server/src/engine.ts:128](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L128)
Opt-in avatar uploads. Omit → not mounted.
@@ -729,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L124)
+Defined in: [eigen-server/packages/server/src/engine.ts:124](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L124)
Browser origins allowed to call the engine from a different origin.
@@ -748,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L126)
+Defined in: [eigen-server/packages/server/src/engine.ts:126](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L126)
Native deep-link verification and store links. Omit for web-only.
@@ -758,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L100)
+Defined in: [eigen-server/packages/server/src/engine.ts:100](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L100)
##### lifecycle?
@@ -766,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L135)
+Defined in: [eigen-server/packages/server/src/engine.ts:135](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -778,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L131)
+Defined in: [eigen-server/packages/server/src/engine.ts:131](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L131)
The public web surface: download page, legal documents, crawler files.
Omit → not mounted (the worker is API-only).
@@ -792,7 +792,7 @@ optional testing?: {
};
```
-Defined in: [eigen-server/packages/server/src/engine.ts:140](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L140)
+Defined in: [eigen-server/packages/server/src/engine.ts:140](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L140)
Explicit test-only replacements for Firebase verification and Admin
effects. Supplying them together prevents a fake verifier from
@@ -829,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L108)
+Defined in: [eigen-server/packages/server/src/engine.ts:108](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L108)
The engine's D1 database (engine-private).
@@ -849,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L113)
+Defined in: [eigen-server/packages/server/src/engine.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L113)
Firebase project id for token verification; defaults to the
`FIREBASE_PROJECT_ID` var (the only secret verification needs).
@@ -870,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L110)
+Defined in: [eigen-server/packages/server/src/engine.ts:110](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L110)
The GameDO namespace binding.
@@ -888,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L30)
#### Properties
@@ -898,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -909,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L31)
##### now
@@ -917,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L39)
##### outcomes
@@ -925,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L35)
##### rated
@@ -933,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L37)
##### ratingPool
@@ -941,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/apply.ts#L38)
##### roster
@@ -949,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/firebase/admin-effects.ts#L15)
The Firebase Admin effects used by authenticated engine paths.
@@ -967,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/firebase/admin-effects.ts#L19)
Permanently delete one Firebase Authentication account.
@@ -990,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/firebase/admin-effects.ts#L17)
Send one notification through the engine's registered-device store.
@@ -1010,7 +1010,7 @@ Send one notification through the engine's registered-device store.
### FrameMessage
-Defined in: [eigen-server/packages/server/src/protocol.ts:137](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L137)
+Defined in: [eigen-server/packages/server/src/protocol.ts:137](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -1024,7 +1024,7 @@ only on the post-finish ratings transition.
data: JsonObject;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:140](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L140)
+Defined in: [eigen-server/packages/server/src/protocol.ts:140](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L140)
##### deadline
@@ -1032,7 +1032,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:140](https://github.co
deadline: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:143](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L143)
+Defined in: [eigen-server/packages/server/src/protocol.ts:143](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L143)
The true client-facing deadline (grace is display-only there).
@@ -1042,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:145](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L145)
+Defined in: [eigen-server/packages/server/src/protocol.ts:145](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L145)
##### pendingPlayers
@@ -1050,7 +1050,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:145](https://github.co
pendingPlayers: number[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:141](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L141)
+Defined in: [eigen-server/packages/server/src/protocol.ts:141](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L141)
##### playerTimes
@@ -1058,7 +1058,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:141](https://github.co
playerTimes: number[] | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:144](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L144)
+Defined in: [eigen-server/packages/server/src/protocol.ts:144](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L144)
##### ratings?
@@ -1066,7 +1066,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:144](https://github.co
optional ratings?: RatingDelta[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:146](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L146)
+Defined in: [eigen-server/packages/server/src/protocol.ts:146](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L146)
##### type
@@ -1074,7 +1074,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:146](https://github.co
type: "frame";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:138](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L138)
+Defined in: [eigen-server/packages/server/src/protocol.ts:138](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L138)
##### version
@@ -1082,13 +1082,13 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:138](https://github.co
version: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:139](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L139)
+Defined in: [eigen-server/packages/server/src/protocol.ts:139](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -1107,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L32)
##### privacy?
@@ -1115,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L31)
##### terms?
@@ -1123,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -1142,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L15)
Support and privacy contact address.
@@ -1152,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -1163,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L13)
Governing jurisdiction, e.g. `India`.
@@ -1173,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L11)
Legal entity name. Also the page footers' copyright holder.
@@ -1181,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L16)
+Defined in: [eigen-server/packages/server/src/protocol.ts:16](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L16)
Who a command acts as, resolved at the edge. Exactly one id is set.
@@ -1193,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L18)
+Defined in: [eigen-server/packages/server/src/protocol.ts:18](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L18)
##### userId
@@ -1201,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L17)
+Defined in: [eigen-server/packages/server/src/protocol.ts:17](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L17)
***
@@ -1291,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L59)
#### Properties
@@ -1301,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L61)
Total attempts including the first. Default 4.
@@ -1311,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L63)
First backoff, doubling each retry. Default 50ms.
@@ -1321,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L65)
Backoff ceiling. Default 2000ms.
@@ -1331,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L69)
Observe each retry (logging); never throws into the loop.
@@ -1352,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L67)
Which failures are worth retrying. Default [isTransientD1Error](#istransientd1error).
@@ -1372,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/d1/retry.ts#L71)
Delay primitive, injectable so tests run without real timers.
@@ -1390,7 +1390,7 @@ Delay primitive, injectable so tests run without real timers.
### SessionSnapshot
-Defined in: [eigen-server/packages/server/src/protocol.ts:98](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L98)
+Defined in: [eigen-server/packages/server/src/protocol.ts:98](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -1418,7 +1418,7 @@ seat's view.
access: GameAccess;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:111](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L111)
+Defined in: [eigen-server/packages/server/src/protocol.ts:111](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L111)
##### budgetSeconds
@@ -1426,7 +1426,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:111](https://github.co
budgetSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:115](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L115)
+Defined in: [eigen-server/packages/server/src/protocol.ts:115](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L115)
##### config
@@ -1434,7 +1434,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:115](https://github.co
config: JsonObject;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:113](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L113)
+Defined in: [eigen-server/packages/server/src/protocol.ts:113](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L113)
##### createdBy
@@ -1442,7 +1442,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:113](https://github.co
createdBy: string | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:121](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L121)
+Defined in: [eigen-server/packages/server/src/protocol.ts:121](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L121)
##### frame
@@ -1450,7 +1450,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:121](https://github.co
frame: FrameMessage | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:131](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L131)
+Defined in: [eigen-server/packages/server/src/protocol.ts:131](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -1462,7 +1462,7 @@ learns that the game started.
gameId: string;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:109](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L109)
+Defined in: [eigen-server/packages/server/src/protocol.ts:109](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L109)
Fixed at creation; carried so this is sufficient on its own.
@@ -1472,7 +1472,7 @@ Fixed at creation; carried so this is sufficient on its own.
incrementSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:116](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L116)
+Defined in: [eigen-server/packages/server/src/protocol.ts:116](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L116)
##### maxPlayers
@@ -1480,7 +1480,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:116](https://github.co
maxPlayers: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:120](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L120)
+Defined in: [eigen-server/packages/server/src/protocol.ts:120](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L120)
##### minPlayers
@@ -1488,7 +1488,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:120](https://github.co
minPlayers: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:119](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L119)
+Defined in: [eigen-server/packages/server/src/protocol.ts:119](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L119)
##### players
@@ -1496,7 +1496,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:119](https://github.co
players: Seat[];
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:125](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L125)
+Defined in: [eigen-server/packages/server/src/protocol.ts:125](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L125)
##### rated
@@ -1504,7 +1504,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:125](https://github.co
rated: boolean;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:117](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L117)
+Defined in: [eigen-server/packages/server/src/protocol.ts:117](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L117)
##### ratingPool
@@ -1512,7 +1512,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:117](https://github.co
ratingPool: string | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:118](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L118)
+Defined in: [eigen-server/packages/server/src/protocol.ts:118](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L118)
##### schemaVersion
@@ -1520,7 +1520,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:118](https://github.co
schemaVersion: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:112](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L112)
+Defined in: [eigen-server/packages/server/src/protocol.ts:112](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L112)
##### seq
@@ -1528,7 +1528,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:112](https://github.co
seq: number;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:106](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L106)
+Defined in: [eigen-server/packages/server/src/protocol.ts:106](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -1543,7 +1543,7 @@ drops the storage `seq` lived in.
shortCode: string;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:110](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L110)
+Defined in: [eigen-server/packages/server/src/protocol.ts:110](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L110)
##### status
@@ -1551,7 +1551,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:110](https://github.co
status: GameStatus;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:124](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L124)
+Defined in: [eigen-server/packages/server/src/protocol.ts:124](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L124)
What moves.
@@ -1561,7 +1561,7 @@ What moves.
turnSeconds: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:114](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L114)
+Defined in: [eigen-server/packages/server/src/protocol.ts:114](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L114)
##### type
@@ -1569,7 +1569,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:114](https://github.co
type: "session";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L99)
+Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L99)
##### version
@@ -1577,7 +1577,7 @@ Defined in: [eigen-server/packages/server/src/protocol.ts:99](https://github.com
version: number | null;
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:127](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L127)
+Defined in: [eigen-server/packages/server/src/protocol.ts:127](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/protocol.ts#L127)
The newest committed version, or null while the game is in the lobby.
@@ -1585,7 +1585,7 @@ 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -1602,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L59)
Longer download-page prose. Defaults to `tagline`.
@@ -1612,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L73)
##### madeByCredit?
@@ -1620,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L71)
Footer credit line. Defaults to [DEFAULT\_CREDIT](#default_credit); `null` removes it.
@@ -1630,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L55)
Public game name in titles and OG tags. Defaults to `appName`.
@@ -1640,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L69)
Path under `public/` to the 1200x630 OG image. Defaults to
`/og-image.png`, the name the
@@ -1654,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L72)
##### primaryColor
@@ -1662,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L61)
Hex accent colour, e.g. `#1a237e`. Also the `theme-color`.
@@ -1672,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L63)
Filenames under `public/screenshots/`, shown as a scrolling strip.
@@ -1682,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/site/config.ts#L57)
One-sentence hook. The meta description and OG description.
@@ -1690,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L29)
The seam `createEngine` consumes. Production is
[createFirebaseVerifier](#createfirebaseverifier) with the default remote JWKS; tests inject a
@@ -1704,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L31)
Resolve a bearer token to claims, or throw [AuthError](#autherror).
@@ -1768,7 +1768,7 @@ type Command =
};
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:23](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L23)
+Defined in: [eigen-server/packages/server/src/protocol.ts:23](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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).
@@ -1968,7 +1968,7 @@ type CommandResult =
};
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:158](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L158)
+Defined in: [eigen-server/packages/server/src/protocol.ts:158](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -1995,7 +1995,7 @@ type LobbyRejectCode =
| "creatorCannotLeave";
```
-Defined in: [eigen-server/packages/server/src/protocol.ts:62](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/protocol.ts#L62)
+Defined in: [eigen-server/packages/server/src/protocol.ts:62](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -2011,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/provision.ts#L19)
## Variables
@@ -2036,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -2053,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -2079,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L418)
+Defined in: [eigen-server/packages/server/src/engine.ts:418](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/engine.ts#L418)
Creates the complete Cloudflare Worker for one game deployment.
@@ -2126,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/packages/server/src/auth/firebase.ts#L46)
#### Parameters
@@ -2147,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -2172,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -2246,7 +2246,7 @@ function ensureUser(
}>;
```
-Defined in: [eigen-server/packages/server/src/auth/provision.ts:51](https://github.com/eigeninteractive/eigen-server/blob/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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 →
@@ -2281,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -2313,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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
@@ -2344,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/packages/server/src/engine.ts#L494)
+Defined in: [eigen-server/packages/server/src/engine.ts:494](https://github.com/eigeninteractive/eigen-server/blob/df5d21daba299f75c8179711bbcd38a29dabfd08/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:
@@ -2401,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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.
@@ -2451,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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,
@@ -2481,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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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 9ea7487..3a68c77 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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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/9a4c7a155651b1935d2cd9045d83062cca1c3433/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/df5d21daba299f75c8179711bbcd38a29dabfd08/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 028e0e5..342323a 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -210,14 +210,23 @@ const config: Config = {
// 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.
//
+ // 0.3.x was relabelled too, and it is the least arguable crossing yet
+ // despite being the most published. That line's paged reads were
+ // broken: a first-page request arrived with an empty `cursor`, which
+ // coerced to `0`, so every lobby and history list answered `200 []`.
+ // 0.4.0 is the fix, and it is a wire change, opaque cursors and
+ // `nextCursor`. Freezing 0.3.x would have published a permanent,
+ // searchable description of a protocol whose lists are always empty,
+ // next to the one that works. Nobody wants to read that page.
+ //
// Naming the current version costs no URLs: Docusaurus serves
// `lastVersion` at the base path, so these pages stay at /docs/*.
// Once the engine has adopters who cannot follow a line break, run
//
- // pnpm docusaurus docs:version 0.3.x
+ // pnpm docusaurus docs:version 0.4.x
//
- // 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
+ // and 0.4.x freezes into `versioned_docs/version-0.4.x` at
+ // /docs/0.4.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.
@@ -225,7 +234,7 @@ const config: Config = {
versions: {
current: {
// Asserted against api/openapi.json; see check-docs-version.
- label: "0.3.x",
+ label: "0.4.x",
},
},
},
@@ -388,7 +397,7 @@ const config: Config = {
},
{ to: "/showcase", label: "Showcase", position: "left" },
{ to: "/blog", label: "Changelog", position: "left" },
- // Renders as "0.3.x", the label from `versions.current` above. With one
+ // Renders as "0.4.x", the label from `versions.current` above. With one
// version live it exists to answer "which engine is this describing",
// and it becomes an ordinary switcher once a version is cut.
//
diff --git a/static/openapi.json b/static/openapi.json
index cd4ee08..85a92a5 100644
--- a/static/openapi.json
+++ b/static/openapi.json
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "EigenInteractive Engine API",
- "version": "0.3.1",
+ "version": "0.4.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": [
@@ -75,10 +75,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"GameSummary": {
@@ -402,7 +410,8 @@
"registrationRequired",
"imageTooLarge",
"unsupportedImageType",
- "rateLimited"
+ "rateLimited",
+ "invalidCursor"
],
"description": "A stable machine code identifying why a request failed."
},
@@ -414,10 +423,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"Session": {
@@ -762,10 +779,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"RatingHistory": {
@@ -1263,10 +1288,18 @@
"items": {
"$ref": "#/components/schemas/GameSummary"
}
+ },
+ "nextCursor": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "Pass as `cursor` to fetch the next page. Null when there are no more results."
}
},
"required": [
- "games"
+ "games",
+ "nextCursor"
]
},
"UserSearch": {
@@ -1385,10 +1418,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -1482,10 +1513,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -1999,10 +2028,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",
@@ -2143,7 +2170,8 @@
"parameters": [
{
"schema": {
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "pool",
@@ -3210,11 +3238,9 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ],
+ "type": "integer",
"minimum": 0,
+ "maximum": 9007199254740991,
"default": 0
},
"required": false,
@@ -3223,11 +3249,9 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ],
- "minimum": 0
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 9007199254740991
},
"required": false,
"name": "to",
@@ -3703,10 +3727,8 @@
},
{
"schema": {
- "type": [
- "integer",
- "null"
- ]
+ "type": "string",
+ "minLength": 1
},
"required": false,
"name": "cursor",