{"openapi":"3.1.0","info":{"title":"Felt API","version":"2026-08-17","description":"Felt runs a poker tournament end to end — from a six-handed kitchen-table game to a\nmulti-day festival.\n\n**This API is public from day one.** A card room adopts Felt by integrating, not by\nretooling, so there is one API and it is documented — including the live command\nsurface, gated by the `tournament:write` scope and rate-limited.\n\n### Conventions\n\n- **Versioning** — `/v1` for majors, plus a `Felt-API-Version` date header for additive\n  changes. Breaking changes appear only at `/v2`, with 12 months' notice and\n  `Deprecation` and `Sunset` headers. `oasdiff` fails our build on an unannounced break.\n- **Idempotency** — `Idempotency-Key` (UUIDv7) is required on every non-GET. Same key\n  with a different body returns `422`. This is the single highest-value reliability\n  feature in the product.\n- **Pagination** — cursor only. `?limit=50&cursor=…` returns\n  `{ data, page: { next_cursor, has_more } }`. Cursors are HMAC'd; `OFFSET` is not\n  supported.\n- **Errors** — RFC 9457 `application/problem+json` with a stable `code` enum, a\n  `request_id` and field-level `errors[]`. Switch on `code`, never on status alone:\n  `SEAT_CONFLICT` and `TABLE_CLOSED` are both `409` and need different recovery UI.\n- **IDs** — ULIDs. **Money** — integer minor units, always.\n\n### Live writes are commands, not CRUD\n\nA tournament is an append-only, hash-chained event log; every number worth arguing\nabout is derived from it. Writes go to `POST /tournaments/{tournament}/commands` as a\ndiscriminated union and return `202` with the assigned `{ epoch, seq }`, or `409` with\na typed precondition failure. Two directors busting the same player is resolved by\nrejecting the second, never by merging both.\n\nEvery random draw — seat draws, table breaks, chip races — carries a seed and an\nalgorithm version in the event, so a challenged draw can be replayed and proven fair.\n\n### What this API will never do\n\nFelt records *that* a buy-in occurred and computes what the payout schedule dictates.\nIt never holds player funds. There is no wallet, no escrow, and no endpoint that takes\na percentage of a prize pool — that is a compliance position, and it is structural\nrather than a policy we could quietly change.","contact":{"name":"Felt","url":"https://feltpoker.uk"},"license":{"name":"Proprietary"}},"servers":[{"url":"https://api.feltpoker.uk/v1","description":"Current major version"}],"tags":[{"name":"Auth","description":"Sessions, magic links and one-time codes"},{"name":"Me","description":"The signed-in person, including the GDPR export and erasure"},{"name":"Orgs","description":"Tenancy, members, branding, compliance and billing"},{"name":"Config","description":"Venues, chip sets, structures, payout schemes, scoring, rule profiles"},{"name":"Players","description":"The league_player roster, imports, claims and merges"},{"name":"Leagues","description":"Leagues, seasons, standings and qualifiers"},{"name":"Tournaments","description":"Creation, live projections and reports"},{"name":"Commands","description":"The live write surface — commands against the event log"},{"name":"Devices","description":"QR device grants and the device roster"},{"name":"Integrations","description":"API keys and webhooks"},{"name":"Public","description":"Unauthenticated spectator and embed surfaces"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"One of three principals: a person's session token, an org-scoped API key (`felt_live_…` / `felt_test_…`), or a QR-granted device token (`feltdev_…`). All three resolve to a scope set, and endpoint code never branches on which one you used."},"cookieAuth":{"type":"apiKey","in":"cookie","name":"felt_session","description":"Browser session cookie, set by the auth endpoints."}}},"x-felt-deprecation-policy":{"additiveChangesVia":"Felt-API-Version date header","breakingChangesVia":"/v2 prefix","noticePeriodMonths":12,"headers":["Deprecation","Sunset","Link"],"ciGate":"oasdiff fails the build on an unannounced breaking change"},"paths":{"/auth/magic-link":{"post":{"summary":"Send a magic link","description":"Always reports success, whether or not the address is known. Telling an anonymous caller which emails have accounts is an enumeration oracle we do not need to hand out.","tags":["Auth"],"operationId":"postAuthMagicLink","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"callbackUrl":{"type":"string","format":"uri"}},"required":["email"]}}}},"responses":{"200":{"description":"Send a magic link","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sent":{"type":"boolean","const":true},"debugToken":{"type":"string"},"debugCode":{"type":"string"}},"required":["sent"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/auth/otp":{"post":{"summary":"Send a six-digit sign-in code","description":"For a TD standing in a pub who cannot open a link on the device they are signing in on.","tags":["Auth"],"operationId":"postAuthOtp","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"callbackUrl":{"type":"string","format":"uri"}},"required":["email"]}}}},"responses":{"200":{"description":"Send a six-digit sign-in code","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sent":{"type":"boolean","const":true},"debugToken":{"type":"string"},"debugCode":{"type":"string"}},"required":["sent"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/auth/verify":{"post":{"summary":"Exchange a magic-link token for a session","description":"","tags":["Auth"],"operationId":"postAuthVerify","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":256}},"required":["token"]}}}},"responses":{"200":{"description":"Exchange a magic-link token for a session","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"user":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"type":"boolean"}},"required":["id","email","name","dateOfBirth","emailVerified"],"additionalProperties":false}},"required":["token","expiresAt","user"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/auth/verify-otp":{"post":{"summary":"Exchange a six-digit code for a session","description":"","tags":["Auth"],"operationId":"postAuthVerifyOtp","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"code":{"type":"string","minLength":6,"maxLength":6,"pattern":"^\\d{6}$"}},"required":["email","code"]}}}},"responses":{"200":{"description":"Exchange a six-digit code for a session","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"user":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"type":"boolean"}},"required":["id","email","name","dateOfBirth","emailVerified"],"additionalProperties":false}},"required":["token","expiresAt","user"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/auth/sign-out":{"post":{"summary":"Revoke the current session","description":"","tags":["Auth"],"operationId":"postAuthSignOut","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}}}}},"responses":{"200":{"description":"Revoke the current session","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"signedOut":{"type":"boolean","const":true}},"required":["signedOut"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/me":{"get":{"summary":"The signed-in person and their orgs","description":"","tags":["Me"],"operationId":"getMe","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The signed-in person and their orgs","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"type":"boolean"},"orgs":{"type":"array","items":{"type":"object","properties":{"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string"},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"role":{"type":"string"}},"required":["orgId","name","slug","role"],"additionalProperties":false}}},"required":["id","email","name","dateOfBirth","emailVerified","orgs"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"patch":{"summary":"Update the signed-in person","description":"Date of birth can be set once. Changing it afterwards is an admin operation, because it is the record the 18+ gate rests on and a licensing officer will ask about it.","tags":["Me"],"operationId":"patchMe","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"dateOfBirth":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"marketingConsent":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Update the signed-in person","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"dateOfBirth":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"type":"boolean"}},"required":["id","email","name","dateOfBirth","emailVerified"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/me/export":{"get":{"summary":"GDPR subject access export","description":"Built on day one. The statutory deadline is one month, and retrofitting an export across an event-sourced system is not a one-week job.","tags":["Me"],"operationId":"getMeExport","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"GDPR subject access export","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generatedAt":{"type":"number"},"user":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"memberships":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"rosterEntries":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"results":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"entries":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["generatedAt","user","memberships","rosterEntries","results","entries"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/me/erase":{"post":{"summary":"Erasure by crypto-shredding","description":"Destroys this person's data key, which renders every copy of their PII ciphertext unrecoverable — including inside the append-only event log, which cannot be rewritten without breaking the fold.\n\nRoster entries survive as anonymous players so tournament results stay intact, which Article 17(3) permits. A tombstone is recorded because D1 Time Travel and DO point-in-time recovery both retain 30 days, so a restore would otherwise un-delete the erased record.","tags":["Me"],"operationId":"postMeErase","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirm":{"type":"string","const":"ERASE"}},"required":["confirm"]}}}},"responses":{"200":{"description":"Erasure by crypto-shredding","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"erased":{"type":"boolean","const":true},"rosterEntriesAnonymised":{"type":"number"}},"required":["erased","rosterEntriesAnonymised"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/commands":{"post":{"summary":"Issue a command against the event log","description":"The single live write endpoint. The body is a discriminated union on `type`; see the schema for every member.\n\n**Returns `202`**, with the `{ epoch, seq }` the command was assigned. Total order is lexicographic on `(epoch, seq)`, so a lease takeover is trivially resolvable.\n\n**Returns `409`** with a typed `code` on a precondition failure — `ALREADY_BUSTED` carries `atSeq`, `SEAT_CONFLICT` carries the occupying entry. Switch on `code`, never on the status.\n\n### Idempotency and offline queues\n\n`Idempotency-Key` is required and deduped inside the tournament's own storage for 24 hours. Same key with a different body returns `422`.\n\nCommands carry a `clientTimestamp`, and each command type has a staleness policy: `applyAlways` (bust, re-entry, chip count), `applyIfFresh` within 30 seconds (clock pause, level advance), or `neverQueue` (anything that moves money). A ten-minute-old queued 'pause clock' must not be applied to a changed world, and comes back as `STALE_INTENT` so the client can show a reconciliation sheet rather than dropping it silently.\n\n### Randomness\n\nSeat draws, table breaks, chip races and mystery draws all require a `seed` in the command. It is recorded in the event, so a challenged draw can be replayed and proven fair.\n\n**Required scope:** `tournament:write`","tags":["Commands"],"operationId":"postTournamentsByTournamentCommands","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","allOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"clock.start"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.pause"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.resume"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.adjust"},"data":{"type":"object","properties":{"deltaMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["deltaMs"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.advance_level"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.revert_level"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.jump_level"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["levelIndex"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"break.start"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"break.end"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.register"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"flightId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"method":{"description":"How the money changed hands. Felt records that a buy-in occurred; it never holds funds.","type":"string","enum":["cash","card_at_venue","external","comp"]},"seatImmediately":{"type":"boolean"}},"required":["leaguePlayerId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.rebuy"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"}},"required":["entryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.addon"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"}},"required":["entryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.reenter"},"data":{"type":"object","properties":{"previousEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"},"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["previousEntryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"registration.close"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"registration.reopen"},"data":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.bust"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"eliminatedByEntryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.bust_revert"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"restoreChips":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.attribute_bust"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"eliminatedByEntryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["entryId","eliminatedByEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.reinstate"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280},"seat":{"anyOf":[{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},{"type":"null"}]}},"required":["entryId","chips","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.disqualify"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["entryId","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"finish.reorder"},"data":{"type":"object","properties":{"order":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["order","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.draw"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.assign"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]}},"required":["entryId","to"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.move"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"reason":{"type":"string","maxLength":280}},"required":["entryId","to"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.open"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":2,"maximum":12},"breakOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["number","seatCount"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.break"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["tableId","seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.redraw"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.set_button"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"buttonSeat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","buttonSeat"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"balance.apply"},"data":{"type":"object","properties":{"moves":{"minItems":1,"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"from":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"reason":{"type":"string","maxLength":280}},"required":["entryId","from","to","reason"]}},"overridden":{"type":"boolean"}},"required":["moves"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"alternate.enqueue"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"alternate.seat"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"chipcount.record"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"breakdown":{"anyOf":[{"description":"Denomination value → chip count.","example":{"25":4,"100":9},"type":"object","propertyNames":{"type":"string","pattern":"^\\d+$"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"type":"null"}]}},"required":["entryId","chips"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.start"},"data":{"type":"object","properties":{"denominationsRemoved":{"minItems":1,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"smallestRemainingDenom":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"method":{"type":"string","enum":["RACE","ROUND_UP"]}},"required":["denominationsRemoved","smallestRemainingDenom","method"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.race_result"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.complete"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"chips.adjust"},"data":{"type":"object","properties":{"entryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"delta":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["entryId","delta","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bounty.claim"},"data":{"type":"object","properties":{"byEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"fromEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["byEntryId","fromEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.activate"},"data":{"type":"object","properties":{"poolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"envelopes":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","amountMinor"]}}},"required":["poolMinor","envelopes"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.issue_ticket"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"forKnockoutOfEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"ticketId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","forKnockoutOfEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.draw"},"data":{"type":"object","properties":{"ticketId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["ticketId","seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"prizepool.contribute"},"data":{"type":"object","properties":{"source":{"type":"string","enum":["OVERLAY","ADDED_MONEY","SPONSOR","CARRYOVER"]},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["source","amountMinor"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"prizepool.deduct"},"data":{"type":"object","properties":{"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["amountMinor","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.publish"},"data":{"type":"object","properties":{"scheme":{"type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"]}}},"required":["minEntries","maxEntries","paidPlaces","tiers"]}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"]},"provisional":{"type":"boolean"}},"required":["scheme"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.override"},"data":{"type":"object","properties":{"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","amountMinor"]}},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["lines","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.mark_paid"},"data":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"method":{"type":"string","maxLength":32},"note":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]}},"required":["place","entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.propose"},"data":{"type":"object","properties":{"method":{"type":"string","enum":["ICM","CHIP_CHOP","MANUAL"]},"lines":{"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["entryId","amountMinor"]}},"seed":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]},"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["method"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.agree"},"data":{"type":"object","properties":{"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"agreedByEntryIds":{"minItems":1,"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}}},"required":["dealId","agreedByEntryIds"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.reject"},"data":{"type":"object","properties":{"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["dealId","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.start"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.table_done"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["tableId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.end"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bubble.declare"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"day.open"},"data":{"type":"object","properties":{"dayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["number"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"day.close"},"data":{"type":"object","properties":{"dayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"overrideReason":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]}},"required":["dayId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bag.seal"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"flightId":{"type":"string","minLength":1},"breakdown":{"description":"Denomination value → chip count.","example":{"25":4,"100":9},"type":"object","propertyNames":{"type":"string","pattern":"^\\d+$"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}},"bagId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","flightId","breakdown"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bag.reclaim"},"data":{"type":"object","properties":{"bagId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["bagId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"flight.combine"},"data":{"type":"object","properties":{"flightIds":{"minItems":1,"type":"array","items":{"type":"string"}},"intoDayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["flightIds","intoDayId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"penalty.issue"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"kind":{"type":"string","enum":["WARNING","HANDS","ROUNDS","DQ"]},"magnitude":{"type":"integer","minimum":0,"maximum":100},"reason":{"type":"string","minLength":1,"maxLength":280},"penaltyId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","kind","magnitude","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"floorcall.open"},"data":{"type":"object","properties":{"tableId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seat":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"note":{"type":"string","minLength":1,"maxLength":280},"callId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["note"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"floorcall.resolve"},"data":{"type":"object","properties":{"callId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"resolution":{"type":"string","minLength":1,"maxLength":280}},"required":["callId","resolution"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"announce.push"},"data":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":500},"level":{"type":"string","enum":["info","warning","urgent"]},"announcementId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["body"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.configure"},"data":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"]}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"]}},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string"},"name":{"type":"string","maxLength":120},"priceMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"bountyMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"components":{"type":"array","items":{"type":"object","properties":{"destination":{"type":"string","enum":["PRIZE_POOL","HOUSE","BOUNTY_POOL","STAFF","PROMO","CHARITY","TAX"]},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"label":{"type":"string","maxLength":64}},"required":["destination","amountMinor"]}}},"required":["id","kind","name","priceMinor","chips","bountyMinor","components"]}},"payoutSchemeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ruleProfile":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"tables":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":2,"maximum":12},"breakOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","number","seatCount","breakOrder"]}}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.complete"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.cancel"},"data":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"integrity.record_resolution"},"data":{"type":"object","properties":{"invariant":{"type":"string","maxLength":64},"deltaBefore":{"type":"number"},"note":{"type":"string","maxLength":500}},"required":["invariant","deltaBefore","note"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bookmark.take"},"data":{"type":"object","properties":{"label":{"type":"string","maxLength":120},"bookmarkId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["label"]}},"required":["type","data"]}]},{"type":"object","properties":{"clientSeq":{"type":"integer","minimum":0,"maximum":9007199254740991},"clientTimestamp":{"type":"integer","minimum":0,"maximum":9007199254740991},"deviceId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"idempotencyKey":{"description":"Client-generated UUIDv7. Required on every non-GET request.","example":"0193f2a1-6b3c-7c4d-8e5f-0a1b2c3d4e5f","type":"string","minLength":8,"maxLength":128}}}]}}}},"responses":{"202":{"description":"Issue a command against the event log","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean","const":true},"epoch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seq":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"eventIds":{"type":"array","items":{"type":"string"}},"replayed":{"type":"boolean"}},"required":["accepted","epoch","seq","eventIds","replayed"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/commands/batch":{"post":{"summary":"Flush a queued outbox","description":"Submits commands in order and returns a per-command outcome. Nothing is rolled back on a rejection: the earlier commands genuinely happened, and pretending otherwise would be a worse lie than the reconciliation sheet.\n\n**Required scope:** `tournament:write`","tags":["Commands"],"operationId":"postTournamentsByTournamentCommandsBatch","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"commands":{"minItems":1,"maxItems":100,"type":"array","items":{"allOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"clock.start"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.pause"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.resume"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.adjust"},"data":{"type":"object","properties":{"deltaMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["deltaMs"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.advance_level"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.revert_level"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"clock.jump_level"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["levelIndex"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"break.start"},"data":{"type":"object","properties":{"levelIndex":{"type":"integer","minimum":0,"maximum":9007199254740991}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"break.end"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.register"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"flightId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"method":{"description":"How the money changed hands. Felt records that a buy-in occurred; it never holds funds.","type":"string","enum":["cash","card_at_venue","external","comp"]},"seatImmediately":{"type":"boolean"}},"required":["leaguePlayerId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.rebuy"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"}},"required":["entryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.addon"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"}},"required":["entryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.reenter"},"data":{"type":"object","properties":{"previousEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"productId":{"type":"string","minLength":1},"method":{"type":"string"},"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["previousEntryId","productId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"registration.close"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"registration.reopen"},"data":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.bust"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"eliminatedByEntryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.bust_revert"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"restoreChips":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.attribute_bust"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"eliminatedByEntryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["entryId","eliminatedByEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.reinstate"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280},"seat":{"anyOf":[{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},{"type":"null"}]}},"required":["entryId","chips","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"entry.disqualify"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["entryId","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"finish.reorder"},"data":{"type":"object","properties":{"order":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["order","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.draw"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.assign"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]}},"required":["entryId","to"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"seat.move"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"reason":{"type":"string","maxLength":280}},"required":["entryId","to"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.open"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":2,"maximum":12},"breakOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["number","seatCount"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.break"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["tableId","seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.redraw"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"table.set_button"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"buttonSeat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","buttonSeat"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"balance.apply"},"data":{"type":"object","properties":{"moves":{"minItems":1,"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"from":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]},"reason":{"type":"string","maxLength":280}},"required":["entryId","from","to","reason"]}},"overridden":{"type":"boolean"}},"required":["moves"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"alternate.enqueue"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"alternate.seat"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seat":{"type":"integer","minimum":1,"maximum":12}},"required":["tableId","seat"]}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"chipcount.record"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"breakdown":{"anyOf":[{"description":"Denomination value → chip count.","example":{"25":4,"100":9},"type":"object","propertyNames":{"type":"string","pattern":"^\\d+$"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"type":"null"}]}},"required":["entryId","chips"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.start"},"data":{"type":"object","properties":{"denominationsRemoved":{"minItems":1,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"smallestRemainingDenom":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"method":{"type":"string","enum":["RACE","ROUND_UP"]}},"required":["denominationsRemoved","smallestRemainingDenom","method"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.race_result"},"data":{"type":"object","properties":{"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"colorup.complete"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"chips.adjust"},"data":{"type":"object","properties":{"entryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"delta":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["entryId","delta","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bounty.claim"},"data":{"type":"object","properties":{"byEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"fromEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["byEntryId","fromEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.activate"},"data":{"type":"object","properties":{"poolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"envelopes":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","amountMinor"]}}},"required":["poolMinor","envelopes"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.issue_ticket"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"forKnockoutOfEntryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"ticketId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","forKnockoutOfEntryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"mystery.draw"},"data":{"type":"object","properties":{"ticketId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seed":{"type":"string","minLength":1,"maxLength":128}},"required":["ticketId","seed"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"prizepool.contribute"},"data":{"type":"object","properties":{"source":{"type":"string","enum":["OVERLAY","ADDED_MONEY","SPONSOR","CARRYOVER"]},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["source","amountMinor"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"prizepool.deduct"},"data":{"type":"object","properties":{"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":280},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["amountMinor","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.publish"},"data":{"type":"object","properties":{"scheme":{"type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"]}}},"required":["minEntries","maxEntries","paidPlaces","tiers"]}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"]},"provisional":{"type":"boolean"}},"required":["scheme"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.override"},"data":{"type":"object","properties":{"lines":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","amountMinor"]}},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["lines","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"payout.mark_paid"},"data":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"method":{"type":"string","maxLength":32},"note":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]}},"required":["place","entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.propose"},"data":{"type":"object","properties":{"method":{"type":"string","enum":["ICM","CHIP_CHOP","MANUAL"]},"lines":{"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["entryId","amountMinor"]}},"seed":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]},"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["method"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.agree"},"data":{"type":"object","properties":{"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"agreedByEntryIds":{"minItems":1,"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}}},"required":["dealId","agreedByEntryIds"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"deal.reject"},"data":{"type":"object","properties":{"dealId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["dealId","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.start"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.table_done"},"data":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["tableId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"handforhand.end"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bubble.declare"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"day.open"},"data":{"type":"object","properties":{"dayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["number"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"day.close"},"data":{"type":"object","properties":{"dayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"overrideReason":{"anyOf":[{"type":"string","maxLength":280},{"type":"null"}]}},"required":["dayId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bag.seal"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"flightId":{"type":"string","minLength":1},"breakdown":{"description":"Denomination value → chip count.","example":{"25":4,"100":9},"type":"object","propertyNames":{"type":"string","pattern":"^\\d+$"},"additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991}},"bagId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","flightId","breakdown"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bag.reclaim"},"data":{"type":"object","properties":{"bagId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["bagId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"flight.combine"},"data":{"type":"object","properties":{"flightIds":{"minItems":1,"type":"array","items":{"type":"string"}},"intoDayId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["flightIds","intoDayId"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"penalty.issue"},"data":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"kind":{"type":"string","enum":["WARNING","HANDS","ROUNDS","DQ"]},"magnitude":{"type":"integer","minimum":0,"maximum":100},"reason":{"type":"string","minLength":1,"maxLength":280},"penaltyId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["entryId","kind","magnitude","reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"floorcall.open"},"data":{"type":"object","properties":{"tableId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seat":{"anyOf":[{"type":"integer","minimum":1,"maximum":12},{"type":"null"}]},"note":{"type":"string","minLength":1,"maxLength":280},"callId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["note"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"floorcall.resolve"},"data":{"type":"object","properties":{"callId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"resolution":{"type":"string","minLength":1,"maxLength":280}},"required":["callId","resolution"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"announce.push"},"data":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":500},"level":{"type":"string","enum":["info","warning","urgent"]},"announcementId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["body"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.configure"},"data":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"]}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"]}},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string"},"name":{"type":"string","maxLength":120},"priceMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"bountyMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"components":{"type":"array","items":{"type":"object","properties":{"destination":{"type":"string","enum":["PRIZE_POOL","HOUSE","BOUNTY_POOL","STAFF","PROMO","CHARITY","TAX"]},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"label":{"type":"string","maxLength":64}},"required":["destination","amountMinor"]}}},"required":["id","kind","name","priceMinor","chips","bountyMinor","components"]}},"payoutSchemeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ruleProfile":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"tables":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":2,"maximum":12},"breakOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","number","seatCount","breakOrder"]}}}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.complete"},"data":{"type":"object","properties":{}}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"tournament.cancel"},"data":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":280}},"required":["reason"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"integrity.record_resolution"},"data":{"type":"object","properties":{"invariant":{"type":"string","maxLength":64},"deltaBefore":{"type":"number"},"note":{"type":"string","maxLength":500}},"required":["invariant","deltaBefore","note"]}},"required":["type","data"]},{"type":"object","properties":{"type":{"type":"string","const":"bookmark.take"},"data":{"type":"object","properties":{"label":{"type":"string","maxLength":120},"bookmarkId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["label"]}},"required":["type","data"]}]},{"type":"object","properties":{"clientSeq":{"type":"integer","minimum":0,"maximum":9007199254740991},"clientTimestamp":{"type":"integer","minimum":0,"maximum":9007199254740991},"deviceId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"idempotencyKey":{"description":"Client-generated UUIDv7. Required on every non-GET request.","example":"0193f2a1-6b3c-7c4d-8e5f-0a1b2c3d4e5f","type":"string","minLength":8,"maxLength":128}}}]}}},"required":["commands"]}}}},"responses":{"200":{"description":"Flush a queued outbox","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"applied":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rejected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"results":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string"},"accepted":{"type":"boolean"},"seq":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["index","type","accepted","seq","code","message"],"additionalProperties":false}}},"required":["applied","rejected","results"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/venues":{"get":{"summary":"List venues","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgVenues","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List venues","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["id","orgId","name","regionId","address","timezone","tableCount","seatsPerTable"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a venue","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgVenues","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["name"]}}}},"responses":{"201":{"description":"Create a venue","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["id","orgId","name","regionId","address","timezone","tableCount","seatsPerTable"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/venues/{id}":{"get":{"summary":"Read a venue","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgVenuesById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a venue","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["id","orgId","name","regionId","address","timezone","tableCount","seatsPerTable"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a venue","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgVenuesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["name"]}}}},"responses":{"200":{"description":"Replace a venue","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"regionId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"type":"string","maxLength":64},"tableCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"seatsPerTable":{"type":"integer","minimum":2,"maximum":12}},"required":["id","orgId","name","regionId","address","timezone","tableCount","seatsPerTable"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a venue","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgVenuesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a venue","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/chip-sets":{"get":{"summary":"List chip sets","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgChipSets","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List chip sets","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"],"additionalProperties":false}}},"required":["id","orgId","name","denoms"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a chip set","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgChipSets","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"]}}},"required":["name","denoms"]}}}},"responses":{"201":{"description":"Create a chip set","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"],"additionalProperties":false}}},"required":["id","orgId","name","denoms"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/chip-sets/{id}":{"get":{"summary":"Read a chip set","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgChipSetsById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a chip set","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"],"additionalProperties":false}}},"required":["id","orgId","name","denoms"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a chip set","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgChipSetsById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"]}}},"required":["name","denoms"]}}}},"responses":{"200":{"description":"Replace a chip set","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"denoms":{"minItems":1,"type":"array","items":{"type":"object","properties":{"value":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"colour":{"type":"string","maxLength":32},"label":{"type":"string","maxLength":32},"quantityOwned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["value","colour","label","quantityOwned"],"additionalProperties":false}}},"required":["id","orgId","name","denoms"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a chip set","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgChipSetsById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a chip set","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/structures":{"get":{"summary":"List structures","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgStructures","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List structures","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"],"additionalProperties":false}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"],"additionalProperties":false}},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","orgId","name","startingStack","currency","buyInMinor","chipSetId","rows","version"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a structure","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgStructures","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"]}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"]}}},"required":["name","startingStack","rows"]}}}},"responses":{"201":{"description":"Create a structure","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"],"additionalProperties":false}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"],"additionalProperties":false}},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","orgId","name","startingStack","currency","buyInMinor","chipSetId","rows","version"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/structures/{id}":{"get":{"summary":"Read a structure","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgStructuresById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a structure","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"],"additionalProperties":false}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"],"additionalProperties":false}},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","orgId","name","startingStack","currency","buyInMinor","chipSetId","rows","version"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a structure","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgStructuresById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"]},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"]}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"]}}},"required":["name","startingStack","rows"]}}}},"responses":{"200":{"description":"Replace a structure","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"buyInMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"],"additionalProperties":false}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"],"additionalProperties":false}},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","orgId","name","startingStack","currency","buyInMinor","chipSetId","rows","version"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a structure","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgStructuresById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a structure","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/payout-schemes":{"get":{"summary":"List payout schemes","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgPayoutSchemes","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List payout schemes","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"],"additionalProperties":false}}},"required":["minEntries","maxEntries","paidPlaces","tiers"],"additionalProperties":false}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a payout scheme","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgPayoutSchemes","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"default":500,"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"default":"DOWN","type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"default":"FIRST","type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"]}}},"required":["minEntries","maxEntries","paidPlaces","tiers"]}}},"required":["name","bands"]}}}},"responses":{"201":{"description":"Create a payout scheme","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"],"additionalProperties":false}}},"required":["minEntries","maxEntries","paidPlaces","tiers"],"additionalProperties":false}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/payout-schemes/{id}":{"get":{"summary":"Read a payout scheme","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgPayoutSchemesById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a payout scheme","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"],"additionalProperties":false}}},"required":["minEntries","maxEntries","paidPlaces","tiers"],"additionalProperties":false}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a payout scheme","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgPayoutSchemesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"default":500,"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"default":"DOWN","type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"default":"FIRST","type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"]}}},"required":["minEntries","maxEntries","paidPlaces","tiers"]}}},"required":["name","bands"]}}}},"responses":{"200":{"description":"Replace a payout scheme","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"orgId":{"type":"string"},"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"],"additionalProperties":false}}},"required":["minEntries","maxEntries","paidPlaces","tiers"],"additionalProperties":false}}},"required":["id","orgId","name","roundingIncrementMinor","roundingMode","residualDestination","bands"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a payout scheme","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgPayoutSchemesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a payout scheme","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/scoring-rules":{"get":{"summary":"List scoring rules","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgScoringRules","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List scoring rules","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"],"additionalProperties":false}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","table","defaultPoints","precision"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","expression","precision"],"additionalProperties":false}]}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a scoring rule","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgScoringRules","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"name":{"type":"string","maxLength":120},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"]}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","table","defaultPoints","precision"]},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"name":{"type":"string","maxLength":120},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","expression","precision"]}]}}}},"responses":{"201":{"description":"Create a scoring rule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"],"additionalProperties":false}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","table","defaultPoints","precision"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","expression","precision"],"additionalProperties":false}]}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/scoring-rules/{id}":{"get":{"summary":"Read a scoring rule","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgScoringRulesById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a scoring rule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"],"additionalProperties":false}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","table","defaultPoints","precision"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","expression","precision"],"additionalProperties":false}]}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a scoring rule","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgScoringRulesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"name":{"type":"string","maxLength":120},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"]}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","table","defaultPoints","precision"]},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"name":{"type":"string","maxLength":120},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","expression","precision"]}]}}}},"responses":{"200":{"description":"Replace a scoring rule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"],"additionalProperties":false}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","table","defaultPoints","precision"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","id","name","version","expression","precision"],"additionalProperties":false}]}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a scoring rule","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgScoringRulesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a scoring rule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/rule-profiles":{"get":{"summary":"List rule profiles","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgRuleProfiles","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List rule profiles","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["id","orgId","name","buttonRule","antePolicy","bigBlindFirstCalculation","balanceThreshold","haltThreshold","colorUpMethod","redrawAtTables","reEntryLimit","lateRegistrationLevel","progressiveBounty"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a rule profile","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgRuleProfiles","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["name"]}}}},"responses":{"201":{"description":"Create a rule profile","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["id","orgId","name","buttonRule","antePolicy","bigBlindFirstCalculation","balanceThreshold","haltThreshold","colorUpMethod","redrawAtTables","reEntryLimit","lateRegistrationLevel","progressiveBounty"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/rule-profiles/{id}":{"get":{"summary":"Read a rule profile","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgRuleProfilesById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a rule profile","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["id","orgId","name","buttonRule","antePolicy","bigBlindFirstCalculation","balanceThreshold","haltThreshold","colorUpMethod","redrawAtTables","reEntryLimit","lateRegistrationLevel","progressiveBounty"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a rule profile","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgRuleProfilesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["name"]}}}},"responses":{"200":{"description":"Replace a rule profile","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"buttonRule":{"default":"DEAD_BUTTON","type":"string","enum":["DEAD_BUTTON","MOVING_BUTTON","FORWARD_MOVING"]},"antePolicy":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"bigBlindFirstCalculation":{"default":true,"type":"boolean"},"balanceThreshold":{"default":2,"type":"integer","minimum":1,"maximum":4},"haltThreshold":{"default":3,"type":"integer","minimum":2,"maximum":6},"colorUpMethod":{"default":"RACE","type":"string","enum":["RACE","ROUND_UP"]},"redrawAtTables":{"default":2,"type":"integer","minimum":1,"maximum":9007199254740991},"reEntryLimit":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lateRegistrationLevel":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"progressiveBounty":{"default":false,"type":"boolean"}},"required":["id","orgId","name","buttonRule","antePolicy","bigBlindFirstCalculation","balanceThreshold","haltThreshold","colorUpMethod","redrawAtTables","reEntryLimit","lateRegistrationLevel","progressiveBounty"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a rule profile","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgRuleProfilesById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a rule profile","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/cinema-layouts":{"get":{"summary":"List cinema layouts","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgCinemaLayouts","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List cinema layouts","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h","options"],"additionalProperties":false}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["id","orgId","name","panels","overscanInsetPercent","sponsorRotationMs"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a cinema layout","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"postOrgsByOrgCinemaLayouts","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h"]}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["name","panels"]}}}},"responses":{"201":{"description":"Create a cinema layout","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h","options"],"additionalProperties":false}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["id","orgId","name","panels","overscanInsetPercent","sponsorRotationMs"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/cinema-layouts/{id}":{"get":{"summary":"Read a cinema layout","description":"\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"getOrgsByOrgCinemaLayoutsById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a cinema layout","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h","options"],"additionalProperties":false}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["id","orgId","name","panels","overscanInsetPercent","sponsorRotationMs"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace a cinema layout","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"putOrgsByOrgCinemaLayoutsById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h"]}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["name","panels"]}}}},"responses":{"200":{"description":"Replace a cinema layout","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"panels":{"minItems":1,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["clock","blinds","next_level","payouts","seat_board","chip_denominations","players_remaining","average_stack","chip_leaders","hand_for_hand","registration_countdown","standings","sponsor","pairing_qr","announcement"]},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"w":{"type":"number","minimum":0,"maximum":1},"h":{"type":"number","minimum":0,"maximum":1},"options":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","x","y","w","h","options"],"additionalProperties":false}},"overscanInsetPercent":{"default":3.5,"type":"number","minimum":0,"maximum":10},"sponsorRotationMs":{"default":15000,"type":"integer","minimum":3000,"maximum":9007199254740991}},"required":["id","orgId","name","panels","overscanInsetPercent","sponsorRotationMs"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a cinema layout","description":"\n\n**Required scope:** `org:write`","tags":["Config"],"operationId":"deleteOrgsByOrgCinemaLayoutsById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a cinema layout","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/structures/generate":{"post":{"summary":"Generate a blind structure to a target duration","description":"Takes starting stack, expected entries, target duration, level length and a chip set, and returns materialised rows plus projections.\n\nThe generator inputs are stored alongside the rows on save, so a TD can re-scale — *same event, 25 players not 60, finish by 11pm* — instead of hand-editing thirty rows.\n\nIf the chip set is known, the response warns where the structure outruns the room's inventory: knowing you do not own enough 500s is much cheaper the night before than during the colour-up.\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"postOrgsByOrgStructuresGenerate","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expectedEntries":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"targetDurationMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"levelDurationMs":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"breakEveryLevels":{"default":4,"type":"integer","minimum":0,"maximum":9007199254740991},"breakDurationMs":{"default":600000,"type":"integer","minimum":0,"maximum":9007199254740991},"smallestDenom":{"default":25,"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"anteType":{"default":"BIG_BLIND_ANTE","type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]},"anteFraction":{"default":1,"type":"number","minimum":0,"maximum":4},"anteStartsAtLevel":{"default":4,"type":"integer","minimum":0,"maximum":9007199254740991},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["startingStack","expectedEntries","targetDurationMs","levelDurationMs"]}}}},"responses":{"200":{"description":"Generate a blind structure to a target duration","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["PLAY","BREAK","COLOR_UP","MARKER"]},"label":{"type":"string","maxLength":32},"durationMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"stakes":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"BLIND"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"LIMIT"},"smallBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBlind":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"anteType":{"type":"string","enum":["NONE","TRADITIONAL","BIG_BLIND_ANTE","BUTTON_ANTE"]}},"required":["kind","smallBlind","bigBlind","smallBet","bigBet","ante","anteType"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BRING_IN"},"ante":{"type":"integer","minimum":0,"maximum":9007199254740991},"bringIn":{"type":"integer","minimum":0,"maximum":9007199254740991},"smallBet":{"type":"integer","minimum":0,"maximum":9007199254740991},"bigBet":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["kind","ante","bringIn","smallBet","bigBet"],"additionalProperties":false}]},{"type":"null"}]},"colorUpDenoms":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"registrationCloses":{"type":"boolean"},"note":{"type":"string","maxLength":280}},"required":["index","kind","label","durationMs","stakes"],"additionalProperties":false}},"projections":{"type":"object","properties":{"totalDurationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"playLevels":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipsInPlay":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startingBigBlinds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"finalLevelAverageBigBlinds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalDurationMs","playLevels","chipsInPlay","startingBigBlinds","finalLevelAverageBigBlinds"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"}}},"required":["rows","projections","warnings"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/payout-schemes/preview":{"post":{"summary":"Preview the exact payout schedule for a field and pool","description":"Given entries and a prize pool, returns the schedule the scheme produces — every prize in integer pence, summing to the pool exactly, monotonically non-increasing by place, with the rounding residual reported and attributed.\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"postOrgsByOrgPayoutSchemesPreview","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schemeId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"scheme":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"roundingIncrementMinor":{"default":500,"type":"integer","minimum":1,"maximum":9007199254740991},"roundingMode":{"default":"DOWN","type":"string","enum":["DOWN","NEAREST","UP"]},"residualDestination":{"default":"FIRST","type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"bands":{"minItems":1,"type":"array","items":{"type":"object","properties":{"minEntries":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxEntries":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"paidPlaces":{"type":"integer","minimum":1,"maximum":9007199254740991},"tiers":{"minItems":1,"type":"array","items":{"type":"object","properties":{"fromPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"toPlace":{"type":"integer","minimum":1,"maximum":9007199254740991},"perPlaceBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["fromPlace","toPlace","perPlaceBps"]}}},"required":["minEntries","maxEntries","paidPlaces","tiers"]}}},"required":["name","bands"]},"entries":{"type":"integer","minimum":1,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["entries","prizePoolMinor"]}}}},"responses":{"200":{"description":"Preview the exact payout schedule for a field and pool","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schedule":{"type":"object","properties":{"entries":{"type":"integer","minimum":0,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidPlaces":{"type":"integer","minimum":0,"maximum":9007199254740991},"lines":{"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","amountMinor","bps"],"additionalProperties":false}},"residualMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"residualRedirected":{"type":"boolean"},"bandIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"warnings":{"type":"array","items":{"type":"string"}}},"required":["entries","prizePoolMinor","paidPlaces","lines","residualMinor","residualDestination","residualRedirected","bandIndex","warnings"],"additionalProperties":false}},"required":["schedule"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/scoring-rules/preview":{"post":{"summary":"Score sample results against a draft rule","description":"The formula editor's live preview. Expressions are parsed into an AST with a whitelisted function set and evaluated under node and step budgets — never `eval`, which in a multi-tenant white-labelled platform would be a remote code execution hole with a UI on it.\n\n**Required scope:** `org:read`","tags":["Config"],"operationId":"postOrgsByOrgScoringRulesPreview","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"TABLE"},"name":{"type":"string","maxLength":120},"table":{"minItems":1,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"points":{"type":"number"}},"required":["place","points"]}},"defaultPoints":{"type":"number"},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","table","defaultPoints","precision"]},{"type":"object","properties":{"kind":{"type":"string","const":"EXPRESSION"},"name":{"type":"string","maxLength":120},"expression":{"type":"string","minLength":1,"maxLength":2000},"precision":{"type":"integer","minimum":0,"maximum":6}},"required":["kind","name","expression","precision"]}]},"samples":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"entries":{"type":"integer","minimum":1,"maximum":9007199254740991},"knockouts":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["place","entries"]}}},"required":["rule","samples"]}}}},"responses":{"200":{"description":"Score sample results against a draft rule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"string"}},"results":{"type":"array","items":{"type":"object","properties":{"place":{"type":"number"},"entries":{"type":"number"},"points":{"type":"number"}},"required":["place","entries","points"],"additionalProperties":false}}},"required":["valid","errors","results"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/device-grants":{"post":{"summary":"Mint a QR grant offer","description":"Person auth only — **a device can never mint a grant**. If it could, one photographed QR code in a pub becomes an unbounded delegation graph and there is no way to reason about who is in the room.\n\n`maxRedemptions` defaults to 1. 'Authorise the whole floor' is one offer with `maxRedemptions: 12`, which is visibly different from an unbounded one, and the roster shows `8 of 12 used`.\n\nThe `director` role is deliberately not grantable here: the clock, the payout publication and the finishing order are what the room argues about, and the person accountable for them is authenticated.\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"postTournamentsByTournamentDeviceGrants","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"role":{"type":"string","enum":["display","floor","desk"]},"ttlSeconds":{"default":120,"type":"integer","minimum":30,"maximum":3600},"maxRedemptions":{"default":1,"type":"integer","minimum":1,"maximum":50},"label":{"type":"string","maxLength":60}},"required":["role"]}}}},"responses":{"201":{"description":"Mint a QR grant offer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"grantId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"role":{"type":"string","enum":["display","floor","desk"]},"qrUrl":{"type":"string","format":"uri"},"typedCode":{"type":"string","minLength":6,"maxLength":6},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"maxRedemptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"redemptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"label":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["grantId","role","qrUrl","typedCode","expiresAt","maxRedemptions","redemptionCount","label"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"get":{"summary":"Live offers and their redemption counts","description":"\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"getTournamentsByTournamentDeviceGrants","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Live offers and their redemption counts","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"grantId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"role":{"type":"string"},"typedCode":{"type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"maxRedemptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"redemptionCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"expiresAt":{"type":"number"},"closedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"expired":{"type":"boolean"}},"required":["grantId","role","typedCode","label","maxRedemptions","redemptionCount","expiresAt","closedAt","expired"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/device-grants/{grant}":{"delete":{"summary":"Close an offer","description":"Already-approved devices are unaffected — closing an offer stops new joins, it does not eject the floor mid-event.\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"deleteTournamentsByTournamentDeviceGrantsByGrant","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"grant","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Close an offer","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"closed":{"type":"boolean","const":true}},"required":["closed"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/device-grants/redeem":{"post":{"summary":"Redeem a grant (unauthenticated)","description":"Called by the joining device with the fragment secret — or the six-character typed fallback, because a projected QR at 10m in a dim pub scans badly and that is a known failure rather than a hypothetical.\n\nSend a **P-256 public key** (SPKI, base64url) from a `extractable: false` WebCrypto keypair, or the Secure Enclave on iOS. The returned token is bound to that key.\n\nThe token comes back **`PENDING` with zero scopes** and a four-digit confirmation code. Display the code; the manager matches it and approves. Until then the device can connect and see nothing.","tags":["Devices"],"operationId":"postDeviceGrantsRedeem","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"secret":{"type":"string","minLength":6,"maxLength":128},"publicKey":{"type":"string","minLength":32,"maxLength":2048},"deviceLabel":{"type":"string","maxLength":60},"platform":{"default":"web","type":"string","enum":["web","ios","ipados","android","tvos","other"]}},"required":["secret","publicKey","deviceLabel"]}}}},"responses":{"201":{"description":"Redeem a grant (unauthenticated)","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deviceId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"token":{"type":"string"},"status":{"type":"string","const":"PENDING"},"confirmationCode":{"type":"string","minLength":4,"maxLength":4},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["deviceId","token","status","confirmationCode","tournamentId","expiresAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/device":{"get":{"summary":"What this device is, and whether it has been approved yet","description":"Answers from the credential itself rather than from a scope check, because the principal that most needs this endpoint is the one that holds **no scopes at all**: a device between redemption and approval cannot read the roster, and 'am I approved yet?' is the only question it has.\n\nIt returns the confirmation code again so a joining device that was backgrounded — the phone went in a pocket while the manager finished a hand — can still show the code the manager is being asked to match, instead of having to redeem a second time.\n\nNothing about the tournament beyond its id and name is exposed. A pending device can see that it is waiting, and that is all.","tags":["Devices"],"operationId":"getDevice","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"What this device is, and whether it has been approved yet","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deviceId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"label":{"type":"string"},"role":{"type":"string","enum":["display","floor","desk"]},"status":{"type":"string","enum":["PENDING","APPROVED"]},"confirmationCode":{"type":"string","minLength":4,"maxLength":4},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tournamentName":{"type":"string"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["deviceId","label","role","status","confirmationCode","tournamentId","tournamentName","expiresAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/devices/{device}/approve":{"post":{"summary":"Approve a pending device","description":"The manager confirms the four-digit code shown on the joining device. Only now does the token gain its role scopes, the socket upgrades in place, and the Cinema screen briefly shows who joined — so the room can see who is driving.\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"postTournamentsByTournamentDevicesByDeviceApprove","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"device","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationCode":{"type":"string","minLength":4,"maxLength":4},"label":{"type":"string","maxLength":60}},"required":["confirmationCode"]}}}},"responses":{"200":{"description":"Approve a pending device","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"label":{"type":"string"},"role":{"type":"string","enum":["display","floor","desk"]},"status":{"type":"string","enum":["PENDING","APPROVED","REVOKED","EXPIRED"]},"platform":{"type":"string"},"grantedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"approvedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"connected":{"type":"boolean"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","label","role","status","platform","grantedByUserId","approvedByUserId","lastSeenAt","connected","expiresAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/devices":{"get":{"summary":"The device roster","description":"Label, role, who granted it, who approved it, and when it was last seen. Device sessions appear here **and** on the Cinema screen, always: a connection nobody in the room can see is a connection nobody will revoke.\n\n**Required scope:** `tournament:read`","tags":["Devices"],"operationId":"getTournamentsByTournamentDevices","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The device roster","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"label":{"type":"string"},"role":{"type":"string","enum":["display","floor","desk"]},"status":{"type":"string","enum":["PENDING","APPROVED","REVOKED","EXPIRED"]},"platform":{"type":"string"},"grantedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"approvedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"connected":{"type":"boolean"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","label","role","status","platform","grantedByUserId","approvedByUserId","lastSeenAt","connected","expiresAt"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/devices/{device}":{"delete":{"summary":"Revoke one device","description":"Takes effect within a second: the Durable Object holds the revocation set, so it does not need a D1 round trip to close the socket.\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"deleteTournamentsByTournamentDevicesByDevice","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"device","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Revoke one device","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revoked":{"type":"boolean","const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/devices/revoke-all":{"post":{"summary":"The panic button","description":"'I think someone photographed the screen' needs a one-tap answer, mid-event, from a stressed TD. Revokes every device on this tournament, closes their sockets, and logs an event.\n\n**Required scope:** `device:manage`","tags":["Devices"],"operationId":"postTournamentsByTournamentDevicesRevokeAll","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reason":{"default":"Panic button","type":"string","maxLength":280}}}}}},"responses":{"200":{"description":"The panic button","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revoked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["revoked"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/api-keys":{"get":{"summary":"List API keys","description":"\n\n**Required scope:** `apikey:manage`","tags":["Integrations"],"operationId":"getOrgsByOrgApiKeys","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List API keys","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"prefix":{"type":"string","maxLength":24},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"lastUsedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"revokedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"environment":{"type":"string","enum":["live","test"]}},"required":["id","name","prefix","scopes","createdAt","lastUsedAt","revokedAt","environment"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create an API key","description":"The secret is returned **exactly once**. It is stored hashed; the prefix is displayed thereafter.\n\nLive commands are in scope for the public API, gated by `tournament:write`. A casino driving Felt from their own floor system is the adoption path, not an edge case — but the key still cannot exceed the scopes you grant it here.\n\n**Required scope:** `apikey:manage`","tags":["Integrations"],"operationId":"postOrgsByOrgApiKeys","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"scopes":{"minItems":1,"type":"array","items":{"type":"string"}},"environment":{"default":"live","type":"string","enum":["live","test"]},"expiresAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["name","scopes"]}}}},"responses":{"201":{"description":"Create an API key","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"prefix":{"type":"string","maxLength":24},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"lastUsedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"revokedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"environment":{"type":"string","enum":["live","test"]},"secret":{"type":"string"}},"required":["id","name","prefix","scopes","createdAt","lastUsedAt","revokedAt","environment","secret"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/api-keys/{key}":{"delete":{"summary":"Revoke an API key","description":"Rotation without downtime: create the new key, migrate, watch `lastUsedAt` on the old one go quiet, then revoke.\n\n**Required scope:** `apikey:manage`","tags":["Integrations"],"operationId":"deleteOrgsByOrgApiKeysByKey","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"key","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Revoke an API key","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revoked":{"type":"boolean","const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/webhooks":{"get":{"summary":"List webhooks","description":"\n\n**Required scope:** `webhook:manage`","tags":["Integrations"],"operationId":"getOrgsByOrgWebhooks","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List webhooks","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"url":{"type":"string","format":"uri"},"eventTypes":{"minItems":1,"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"lastDeliveryAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lastDeliveryStatus":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"failureCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","url","eventTypes","active","createdAt","lastDeliveryAt","lastDeliveryStatus","failureCount"],"additionalProperties":false}},"availableEventTypes":{"type":"array","items":{"type":"string"}}},"required":["data","availableEventTypes"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a webhook","description":"Signed with HMAC-SHA256 over `${timestamp}.${rawBody}` and delivered as `Felt-Signature: t=<unix>,v1=<hex>` with a five-minute tolerance — the Stripe scheme, because integrators already know it and will have a verification helper already written.\n\nDelivery is at-least-once through Queues, so retries and a dead-letter queue come for free. Event ids are stable: **dedupe on `Felt-Event-Id`**.\n\nThe signing secret is returned exactly once.\n\n**Required scope:** `webhook:manage`","tags":["Integrations"],"operationId":"postOrgsByOrgWebhooks","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"eventTypes":{"minItems":1,"type":"array","items":{"type":"string"}},"active":{"default":true,"type":"boolean"}},"required":["url","eventTypes"]}}}},"responses":{"201":{"description":"Create a webhook","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"url":{"type":"string","format":"uri"},"eventTypes":{"minItems":1,"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"lastDeliveryAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"lastDeliveryStatus":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"failureCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"signingSecret":{"type":"string"}},"required":["id","url","eventTypes","active","createdAt","lastDeliveryAt","lastDeliveryStatus","failureCount","signingSecret"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/webhooks/{webhook}":{"delete":{"summary":"Delete a webhook","description":"\n\n**Required scope:** `webhook:manage`","tags":["Integrations"],"operationId":"deleteOrgsByOrgWebhooksByWebhook","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"webhook","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a webhook","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/webhooks/{webhook}/test":{"post":{"summary":"Send a test delivery","description":"Delivers a `webhook.test` payload signed exactly like a real one, so an integrator can verify their signature check before a live event depends on it.\n\n**Required scope:** `webhook:manage`","tags":["Integrations"],"operationId":"postOrgsByOrgWebhooksByWebhookTest","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"webhook","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}}}}},"responses":{"200":{"description":"Send a test delivery","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"delivered":{"type":"boolean"},"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"signature":{"type":"string"}},"required":["delivered","status","signature"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/leagues":{"get":{"summary":"List leagues","description":"\n\n**Required scope:** `league:read`","tags":["Leagues"],"operationId":"getOrgsByOrgLeagues","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List leagues","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"venueIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"isPublic":{"type":"boolean"}},"required":["id","orgId","name","slug","venueIds","isPublic"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a league","description":"A league spans venues. Cross-venue tables are **points only** — pooling a prize fund across premises would be unlawful linked gaming, while qualification chains into a final are fine, so the points model is kept structurally separate from any prize liability.\n\n**Required scope:** `league:write`","tags":["Leagues"],"operationId":"postOrgsByOrgLeagues","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"venueIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"isPublic":{"type":"boolean"}},"required":["name"]}}}},"responses":{"201":{"description":"Create a league","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"venueIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"isPublic":{"type":"boolean"}},"required":["id","orgId","name","slug","venueIds","isPublic"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/leagues/{league}/seasons":{"get":{"summary":"List seasons","description":"\n\n**Required scope:** `league:read`","tags":["Leagues"],"operationId":"getLeaguesByLeagueSeasons","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"league","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List seasons","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leagueId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startsAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"endsAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"scoringRuleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"countingPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ALL"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"DROP_LOWEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false}]},"tieBreakChain":{"type":"array","items":{"type":"string","enum":["TOTAL_POINTS","EVENTS_PLAYED","WINS","FINAL_TABLES","CASHES","BEST_FINISH","AVERAGE_FINISH","TOTAL_WINNINGS","MOST_RECENT_RESULT","HEAD_TO_HEAD"]}},"qualifierSeats":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","leagueId","name","startsAt","endsAt","scoringRuleId","countingPolicy","tieBreakChain","qualifierSeats","minimumEvents"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a season","description":"The counting policy and tie-break chain live here rather than on the league, because they are exactly the things a committee changes between seasons — and changing them must not reach backwards into a finished one.\n\n**Required scope:** `league:write`","tags":["Leagues"],"operationId":"postLeaguesByLeagueSeasons","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"league","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"startsAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"endsAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"scoringRuleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"countingPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ALL"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","const":"BEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"]},{"type":"object","properties":{"kind":{"type":"string","const":"DROP_LOWEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"]}]},"tieBreakChain":{"type":"array","items":{"type":"string","enum":["TOTAL_POINTS","EVENTS_PLAYED","WINS","FINAL_TABLES","CASHES","BEST_FINISH","AVERAGE_FINISH","TOTAL_WINNINGS","MOST_RECENT_RESULT","HEAD_TO_HEAD"]}},"qualifierSeats":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["name","startsAt"]}}}},"responses":{"201":{"description":"Create a season","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leagueId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startsAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"endsAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"scoringRuleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"countingPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ALL"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"DROP_LOWEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false}]},"tieBreakChain":{"type":"array","items":{"type":"string","enum":["TOTAL_POINTS","EVENTS_PLAYED","WINS","FINAL_TABLES","CASHES","BEST_FINISH","AVERAGE_FINISH","TOTAL_WINNINGS","MOST_RECENT_RESULT","HEAD_TO_HEAD"]}},"qualifierSeats":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","leagueId","name","startsAt","endsAt","scoringRuleId","countingPolicy","tieBreakChain","qualifierSeats","minimumEvents"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/seasons/{season}":{"patch":{"summary":"Update a season","description":"\n\n**Required scope:** `league:write`","tags":["Leagues"],"operationId":"patchSeasonsBySeason","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"season","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"startsAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"endsAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"scoringRuleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"countingPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ALL"}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","const":"BEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"]},{"type":"object","properties":{"kind":{"type":"string","const":"DROP_LOWEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"]}]},"tieBreakChain":{"type":"array","items":{"type":"string","enum":["TOTAL_POINTS","EVENTS_PLAYED","WINS","FINAL_TABLES","CASHES","BEST_FINISH","AVERAGE_FINISH","TOTAL_WINNINGS","MOST_RECENT_RESULT","HEAD_TO_HEAD"]}},"qualifierSeats":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":0,"maximum":9007199254740991}}}}}},"responses":{"200":{"description":"Update a season","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leagueId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"startsAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"endsAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"scoringRuleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"countingPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"ALL"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"BEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"DROP_LOWEST_N"},"n":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","n"],"additionalProperties":false}]},"tieBreakChain":{"type":"array","items":{"type":"string","enum":["TOTAL_POINTS","EVENTS_PLAYED","WINS","FINAL_TABLES","CASHES","BEST_FINISH","AVERAGE_FINISH","TOTAL_WINNINGS","MOST_RECENT_RESULT","HEAD_TO_HEAD"]}},"qualifierSeats":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","leagueId","name","startsAt","endsAt","scoringRuleId","countingPolicy","tieBreakChain","qualifierSeats","minimumEvents"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/seasons/{season}/standings":{"get":{"summary":"Season standings","description":"Computed on demand. Each row carries the events that counted, the events that were dropped, and — when the row is tied on points — **which criterion broke the tie**, in plain English.\n\nLeague disputes are almost always about tie-breaks, and a table that cannot explain itself is a table a landlord has to defend from memory.\n\n**Required scope:** `league:read`","tags":["Leagues"],"operationId":"getSeasonsBySeasonStandings","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"season","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"force","in":"query","required":false,"schema":{"default":false,"type":"boolean"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Season standings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"seasonId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seasonName":{"type":"string"},"ruleId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"generatedAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"rows":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"totalPoints":{"type":"number"},"eventsPlayed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"countedEventIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"droppedEventIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"wins":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"finalTables":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cashes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bestFinish":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"averageFinish":{"anyOf":[{"type":"number"},{"type":"null"}]},"totalWinningsMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"knockouts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tieBrokenBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"tieBreakExplanation":{"anyOf":[{"type":"string"},{"type":"null"}]},"unresolvedTie":{"type":"boolean"}},"required":["rank","leaguePlayerId","displayName","totalPoints","eventsPlayed","countedEventIds","droppedEventIds","wins","finalTables","cashes","bestFinish","averageFinish","totalWinningsMinor","knockouts","tieBrokenBy","tieBreakExplanation","unresolvedTie"],"additionalProperties":false}}},"required":["seasonId","seasonName","ruleId","generatedAt","rows"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/seasons/{season}/qualifiers":{"get":{"summary":"Who has qualified","description":"Seats, never money. Qualification chains into a final are lawful across premises; pooling a prize fund across them is not.\n\n**Required scope:** `league:read`","tags":["Leagues"],"operationId":"getSeasonsBySeasonQualifiers","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"season","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Who has qualified","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"seasonId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"minimumEvents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rows":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"totalPoints":{"type":"number"},"qualified":{"type":"boolean"},"reason":{"type":"string"}},"required":["rank","leaguePlayerId","displayName","totalPoints","qualified","reason"],"additionalProperties":false}}},"required":["seasonId","seats","minimumEvents","rows"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs":{"get":{"summary":"Organisations you belong to","description":"","tags":["Orgs"],"operationId":"getOrgs","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Organisations you belong to","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"type":"string","maxLength":16},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","slug","tier","currency","jurisdiction","createdAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create an organisation","description":"The creator becomes OWNER. A default payout scheme, rule profile and compliance profile are seeded so a home game can run a night without configuring anything — but the compliance profile is deliberately left un-attested until someone declares their venue type.","tags":["Orgs"],"operationId":"postOrgs","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"default":"PUB","type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"default":"GBP","example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"default":"GB-ENG","type":"string","maxLength":16}},"required":["name"]}}}},"responses":{"201":{"description":"Create an organisation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"type":"string","maxLength":16},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","slug","tier","currency","jurisdiction","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}":{"get":{"summary":"Read an organisation","description":"","tags":["Orgs"],"operationId":"getOrgsByOrg","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read an organisation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"type":"string","maxLength":16},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","slug","tier","currency","jurisdiction","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"patch":{"summary":"Update an organisation","description":"","tags":["Orgs"],"operationId":"patchOrgsByOrg","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"default":"PUB","type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"default":"GBP","example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"default":"GB-ENG","type":"string","maxLength":16}}}}}},"responses":{"200":{"description":"Update an organisation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":120},"slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9-]*[a-z0-9]$"},"tier":{"type":"string","enum":["HOME","PUB","CLUB","CARD_ROOM","CASINO"]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"jurisdiction":{"type":"string","maxLength":16},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","name","slug","tier","currency","jurisdiction","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/members":{"get":{"summary":"List members","description":"","tags":["Orgs"],"operationId":"getOrgsByOrgMembers","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List members","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"userId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["OWNER","BRAND_ADMIN","REGION_ADMIN","VENUE_MANAGER","DIRECTOR","STAFF","VIEWER"]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"invitedAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"acceptedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["userId","email","name","role","venueId","invitedAt","acceptedAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Invite a member","description":"A venue manager signs up themselves and sees exactly their venue. There is no central bottleneck here on purpose — that bottleneck is the incumbent's actual product weakness, and a league operator with 40 venues cannot route every landlord through an admin.","tags":["Orgs"],"operationId":"postOrgsByOrgMembers","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["OWNER","BRAND_ADMIN","REGION_ADMIN","VENUE_MANAGER","DIRECTOR","STAFF","VIEWER"]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invite a member","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"inviteId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"email":{"type":"string"},"role":{"type":"string"},"expiresAt":{"type":"number"}},"required":["inviteId","email","role","expiresAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/members/{user}":{"delete":{"summary":"Remove a member","description":"","tags":["Orgs"],"operationId":"deleteOrgsByOrgMembersByUser","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"user","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Remove a member","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/invites/{token}/accept":{"post":{"summary":"Accept an invitation","description":"","tags":["Orgs"],"operationId":"postOrgsInvitesByTokenAccept","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":256}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}}}}},"responses":{"200":{"description":"Accept an invitation","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"role":{"type":"string"}},"required":["orgId","role"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/branding":{"get":{"summary":"Read branding","description":"","tags":["Orgs"],"operationId":"getOrgsByOrgBranding","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read branding","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"crestUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"palette":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"typography":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"sponsorAssets":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string","format":"uri"},"weight":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","url","weight"],"additionalProperties":false}},"customDomain":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]}},"required":["logoUrl","crestUrl","palette","typography","sponsorAssets","customDomain"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Replace branding","description":"White-label is applied at runtime from this record, never at build time — App Store 4.2.6 rules out one branded binary per league, and one binary with runtime branding is the model Apple explicitly names as acceptable.","tags":["Orgs"],"operationId":"putOrgsByOrgBranding","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"crestUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"palette":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"typography":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"sponsorAssets":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string","format":"uri"},"weight":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","url"]}},"customDomain":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Replace branding","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"crestUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"palette":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"typography":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"sponsorAssets":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string","format":"uri"},"weight":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","url","weight"],"additionalProperties":false}},"customDomain":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]}},"required":["logoUrl","crestUrl","palette","typography","sponsorAssets","customDomain"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/compliance-profile":{"get":{"summary":"Read the compliance profile","description":"","tags":["Orgs"],"operationId":"getOrgsByOrgComplianceProfile","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read the compliance profile","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"venueType":{"type":"string","enum":["ALCOHOL_LICENSED","MEMBERS_CLUB","PRIVATE","LICENSED_CASINO","OTHER"]},"jurisdiction":{"type":"string","maxLength":16},"attestedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"attestedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"attestationText":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"maxStakePerPlayerMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxAggregateStakePerDayMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxPrizeMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"noStakeMode":{"type":"boolean"},"chipValueBasis":{"type":"string","enum":["TOURNAMENT","CASH"]},"prizeFundingSource":{"type":"string","enum":["VENUE_FUNDED","SPONSOR_FUNDED","STAKE_FUNDED","ROLLED_OVER","NONE"]},"overrides":{"default":[],"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"value":{"type":"string"},"reason":{"type":"string"},"byUserId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"at":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["field","value","reason","byUserId","at"],"additionalProperties":false}}},"required":["venueType","jurisdiction","attestedByUserId","attestedAt","attestationText","maxStakePerPlayerMinor","maxAggregateStakePerDayMinor","maxPrizeMinor","noStakeMode","chipValueBasis","prizeFundingSource","overrides"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Attest a venue type and set caps","description":"The customer **attests** their venue type; we log the attestation immutably and apply caps as strong defaults with a logged override. This endpoint deliberately does **not** return a verdict on whether a format is lawful.\n\nA compliance badge is an assurance, and an assurance we get wrong is a misrepresentation to a customer who then commits a criminal offence. The right shape is: the customer attests, caps are presented as the customer's own configuration, overrides are logged, and the terms disclaim legal advice.\n\nLimits are stored here as **configuration, never as constants in a deploy**, because the reported figures are unverified and jurisdictions differ — the Gambling Act 2005 is Great Britain only.","tags":["Orgs"],"operationId":"putOrgsByOrgComplianceProfile","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"venueType":{"type":"string","enum":["ALCOHOL_LICENSED","MEMBERS_CLUB","PRIVATE","LICENSED_CASINO","OTHER"]},"jurisdiction":{"type":"string","maxLength":16},"attestedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"attestedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"attestationText":{"type":"string","maxLength":2000},"maxStakePerPlayerMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxAggregateStakePerDayMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxPrizeMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"noStakeMode":{"type":"boolean"},"chipValueBasis":{"type":"string","enum":["TOURNAMENT","CASH"]},"prizeFundingSource":{"type":"string","enum":["VENUE_FUNDED","SPONSOR_FUNDED","STAKE_FUNDED","ROLLED_OVER","NONE"]},"overrides":{"default":[],"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"value":{"type":"string"},"reason":{"type":"string"},"byUserId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"at":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["field","value","reason","byUserId","at"]}}}}}}},"responses":{"200":{"description":"Attest a venue type and set caps","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"venueType":{"type":"string","enum":["ALCOHOL_LICENSED","MEMBERS_CLUB","PRIVATE","LICENSED_CASINO","OTHER"]},"jurisdiction":{"type":"string","maxLength":16},"attestedByUserId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"attestedAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"attestationText":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"maxStakePerPlayerMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxAggregateStakePerDayMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"maxPrizeMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"noStakeMode":{"type":"boolean"},"chipValueBasis":{"type":"string","enum":["TOURNAMENT","CASH"]},"prizeFundingSource":{"type":"string","enum":["VENUE_FUNDED","SPONSOR_FUNDED","STAKE_FUNDED","ROLLED_OVER","NONE"]},"overrides":{"default":[],"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"value":{"type":"string"},"reason":{"type":"string"},"byUserId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"at":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["field","value","reason","byUserId","at"],"additionalProperties":false}}},"required":["venueType","jurisdiction","attestedByUserId","attestedAt","attestationText","maxStakePerPlayerMinor","maxAggregateStakePerDayMinor","maxPrizeMinor","noStakeMode","chipValueBasis","prizeFundingSource","overrides"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/responsible-play":{"get":{"summary":"Read responsible-play settings","description":"","tags":["Orgs"],"operationId":"getOrgsByOrgResponsiblePlay","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read responsible-play settings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"selfExclusionEnabled":{"type":"boolean"},"weeklyBuyInCapMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"seasonReEntryCap":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"realityChecksEnabled":{"type":"boolean"},"signpostingUrls":{"default":[],"type":"array","items":{"type":"string","format":"uri"}}},"required":["selfExclusionEnabled","weeklyBuyInCapMinor","seasonReEntryCap","realityChecksEnabled","signpostingUrls"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"put":{"summary":"Update responsible-play settings","description":"Signposts GamCare and BeGambleAware. We are **not** eligible to integrate GAMSTOP — it is for licensed online operators — and must never imply we check the register; a player's own 'I'm registered with GAMSTOP' declaration can still trigger Felt's own exclusion.","tags":["Orgs"],"operationId":"putOrgsByOrgResponsiblePlay","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"selfExclusionEnabled":{"type":"boolean"},"weeklyBuyInCapMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"seasonReEntryCap":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"realityChecksEnabled":{"type":"boolean"},"signpostingUrls":{"default":[],"type":"array","items":{"type":"string","format":"uri"}}}}}}},"responses":{"200":{"description":"Update responsible-play settings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"selfExclusionEnabled":{"type":"boolean"},"weeklyBuyInCapMinor":{"anyOf":[{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"seasonReEntryCap":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"realityChecksEnabled":{"type":"boolean"},"signpostingUrls":{"default":[],"type":"array","items":{"type":"string","format":"uri"}}},"required":["selfExclusionEnabled","weeklyBuyInCapMinor","seasonReEntryCap","realityChecksEnabled","signpostingUrls"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/billing":{"get":{"summary":"Subscription status","description":"**Subscriptions only.** Felt never holds player funds, takes no percentage of any prize pool, and has no wallet table to report on.\n\nThis is not a limitation to route around: a per-player fee to Felt would be a participation fee under Gambling Act 2005 s.344, which breaks the exemption our customers rely on and turns their lawful game into an offence. Billing is a flat charge to the venue or operator, and the contract prohibits recovering it per-head at the door.","tags":["Orgs"],"operationId":"getOrgsByOrgBilling","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Subscription status","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plan":{"type":"string"},"status":{"type":"string"},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"venueAllowance":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"note":{"type":"string"}},"required":["plan","status","seats","venueAllowance","currentPeriodEnd","note"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players":{"get":{"summary":"List or search the roster","description":"`?q=` runs an FTS5 prefix search over display name and nickname. Not a vector search — 'find Dave from the darts team' is a prefix lookup over a bounded roster, which is the wrong cardinality for semantic similarity and the right one for the index we already have.\n\n**Required scope:** `player:read`","tags":["Players"],"operationId":"getOrgsByOrgPlayers","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"includeMerged","in":"query","required":false,"schema":{"default":false,"type":"boolean"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List or search the roster","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string","maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"personId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"mergedIntoId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"selfExcludedUntil":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","orgId","displayName","nickname","personId","mergedIntoId","hasEmail","hasPhone","selfExcludedUntil","createdAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Add someone to the roster","description":"No account required. Contact details are stored as HMAC-SHA256 under a server-side pepper, so we can answer 'does this player already exist?' without holding plaintext for pub regulars who never signed up.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayers","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"email":{"anyOf":[{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}},"required":["displayName"]}}}},"responses":{"201":{"description":"Add someone to the roster","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string","maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"personId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"mergedIntoId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"selfExcludedUntil":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","orgId","displayName","nickname","personId","mergedIntoId","hasEmail","hasPhone","selfExcludedUntil","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/{id}":{"get":{"summary":"Read a roster entry","description":"A merged entry resolves through `mergedIntoId` at read time; the `from` row is never deleted and no historical result is rewritten.\n\n**Required scope:** `player:read`","tags":["Players"],"operationId":"getOrgsByOrgPlayersById","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Read a roster entry","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string","maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"personId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"mergedIntoId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"selfExcludedUntil":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","orgId","displayName","nickname","personId","mergedIntoId","hasEmail","hasPhone","selfExcludedUntil","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"patch":{"summary":"Update a roster entry","description":"\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"patchOrgsByOrgPlayersById","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"email":{"anyOf":[{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Update a roster entry","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string","maxLength":120},"nickname":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"personId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"mergedIntoId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"selfExcludedUntil":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","orgId","displayName","nickname","personId","mergedIntoId","hasEmail","hasPhone","selfExcludedUntil","createdAt"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/{id}/claim":{"post":{"summary":"Claim a roster entry","description":"Challenge-gated by email, phone or org-admin approval. Without a challenge, anyone claims the league champion's record and inherits their ranking — so an unchallenged claim is not a convenience we can offer.\n\n**Required scope:** `player:read`","tags":["Players"],"operationId":"postOrgsByOrgPlayersByIdClaim","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"id","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challenge":{"type":"string","enum":["EMAIL","PHONE","ORG_ADMIN_APPROVAL"]},"code":{"type":"string","maxLength":16}},"required":["challenge"]}}}},"responses":{"201":{"description":"Claim a roster entry","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"claimId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"status":{"type":"string","enum":["PENDING","APPROVED"]},"challenge":{"type":"string"},"message":{"type":"string"}},"required":["claimId","status","challenge","message"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/merge":{"post":{"summary":"Merge two roster entries","description":"**Soft and reversible.** The `from` row survives with `mergedIntoId` set and reads resolve through it. We never `UPDATE` a historical result — a merge that rewrote finishing positions would quietly change last season's standings.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersMerge","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fromId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"intoId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"reason":{"type":"string","maxLength":280}},"required":["fromId","intoId","reason"]}}}},"responses":{"201":{"description":"Merge two roster entries","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"mergeId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"fromId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"intoId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"resultsPreserved":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["mergeId","fromId","intoId","resultsPreserved"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/merge/{merge}/revert":{"post":{"summary":"Revert a merge","description":"\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersMergeByMergeRevert","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"merge","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reason":{"type":"string","maxLength":280}},"required":["reason"]}}}},"responses":{"200":{"description":"Revert a merge","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reverted":{"type":"boolean","const":true}},"required":["reverted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/self-exclusion":{"post":{"summary":"Record a self-exclusion","description":"One, three, six or twelve months. **A TD cannot lift this early** — that irrevocability is what makes it meaningful, so there is deliberately no endpoint to cancel one.\n\nA player's own 'I'm registered with GAMSTOP' declaration can trigger an exclusion here. We are **not** eligible to integrate GAMSTOP (it is for licensed online operators) and never imply that we check the register.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersSelfExclusion","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"months":{"anyOf":[{"type":"number","const":1},{"type":"number","const":3},{"type":"number","const":6},{"type":"number","const":12}]},"reason":{"type":"string","enum":["SELF","GAMSTOP_DECLARED","TD_INITIATED"]},"note":{"type":"string","maxLength":500}},"required":["leaguePlayerId","months","reason"]}}}},"responses":{"201":{"description":"Record a self-exclusion","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"endsAt":{"type":"number"},"liftableEarly":{"type":"boolean","const":false}},"required":["id","leaguePlayerId","endsAt","liftableEarly"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/import":{"post":{"summary":"Import a roster (dry run by default)","description":"**The primary switching lever.** Nobody moves 1,000 venues in a weekend, and refusing to support the transition is how you lose the deal.\n\nDefaults to a dry run and returns a diff — `+2,104 new, 318 matched, 12 ambiguous` — with an explicit apply step and a reversible batch id. Ambiguous matches go to a review queue rather than being merged optimistically, because at 82,000 rows an optimistic merge is unrecoverable.\n\nFiles above a few thousand rows run as a durable Workflow rather than inline: at that scale a synchronous upload is a timeout, not an import.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersImport","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"format":{"default":"csv","type":"string","enum":["csv","xlsx"]},"content":{"type":"string","maxLength":2000000},"r2Key":{"type":"string","maxLength":512},"columnMap":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"dryRun":{"default":true,"type":"boolean"}}}}}},"responses":{"201":{"description":"Import a roster (dry run by default)","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"importId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"status":{"type":"string","enum":["PREVIEW","QUEUED","RUNNING","APPLIED","FAILED"]},"diff":{"type":"object","properties":{"newCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"matchedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ambiguousCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"samples":{"type":"array","items":{"type":"object","properties":{"row":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"action":{"type":"string","enum":["NEW","MATCH","AMBIGUOUS","ERROR"]},"displayName":{"type":"string"},"matchedPlayerId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["row","action","displayName"],"additionalProperties":false}}},"required":["newCount","matchedCount","ambiguousCount","errorCount","samples"],"additionalProperties":false},"batchId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}},"required":["importId","status","diff","batchId"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/import/apply":{"post":{"summary":"Apply a previewed import","description":"Creates only the rows the preview marked NEW. Ambiguous rows stay in the review queue; matched rows are left alone.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersImportApply","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"importId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["importId"]}}}},"responses":{"201":{"description":"Apply a previewed import","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"batchId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["batchId","created","skipped"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/import/{batch}/revert":{"post":{"summary":"Revert an applied import","description":"Removes only the players this batch created, and only those with no tournament history — a player who has since played a night is kept and reported as skipped.\n\n**Required scope:** `player:write`","tags":["Players"],"operationId":"postOrgsByOrgPlayersImportByBatchRevert","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"batch","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reason":{"type":"string","maxLength":280}},"required":["reason"]}}}},"responses":{"200":{"description":"Revert an applied import","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"removed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"keptWithHistory":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["removed","keptWithHistory"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/orgs/{org}/players/import/{batch}/review":{"get":{"summary":"The ambiguous-match review queue","description":"\n\n**Required scope:** `player:read`","tags":["Players"],"operationId":"getOrgsByOrgPlayersImportByBatchReview","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"batch","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The ambiguous-match review queue","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"rowNumber":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"action":{"type":"string"},"displayName":{"type":"string"},"matchedPlayerId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}]},"resolvedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","rowNumber","action","displayName","matchedPlayerId","message","resolvedAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/public/t/{code}":{"get":{"summary":"Spectator projection","description":"The page behind the QR on the Cinema screen. No login, no account, no app.\n\nReturns the clock **anchor**, never a countdown: the page computes the remaining time locally from `(startedAtLeaderMono, levelDurationMs, pausedAccumMs)` against its own monotonic clock, cross-checked against `serverTime`. We never broadcast a tick — to a thousand spectators that would be a thousand messages a second of pure waste, and it would break the offline story for everyone else.\n\nIf the live room is unreachable this falls back to the KV snapshot mirror, and says so, rather than silently showing stale numbers.","tags":["Public"],"operationId":"getPublicTByCode","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","minLength":4,"maxLength":12}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Spectator projection","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string"},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string"},"venueName":{"anyOf":[{"type":"string"},{"type":"null"}]},"brand":{"type":"object","properties":{"name":{"type":"string"},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"palette":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["name","logoUrl","palette"],"additionalProperties":false},"status":{"type":"string"},"clock":{"type":"object","properties":{"epoch":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"levelIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"levelDurationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startedAtLeaderMono":{"type":"number"},"pausedAtLeaderMono":{"anyOf":[{"type":"number"},{"type":"null"}]},"pausedAccumMs":{"type":"number"},"status":{"type":"string"},"serverTime":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["epoch","levelIndex","levelDurationMs","startedAtLeaderMono","pausedAtLeaderMono","pausedAccumMs","status","serverTime"],"additionalProperties":false},"currentStakes":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextStakes":{"anyOf":[{"type":"string"},{"type":"null"}]},"playersRemaining":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalEntries":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"averageStack":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"payouts":{"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","amountMinor"],"additionalProperties":false}},"results":{"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"displayName":{"type":"string"}},"required":["place","displayName"],"additionalProperties":false}},"degraded":{"type":"boolean"}},"required":["code","tournamentId","name","venueName","brand","status","clock","currentStakes","nextStakes","playersRemaining","totalEntries","averageStack","prizePoolMinor","currency","payouts","results"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/public/leagues/{slug}/standings":{"get":{"summary":"Embeddable public standings","description":"Matches the incumbent's copy-paste iframe and then beats it: a real embed with a documented, cacheable JSON endpoint behind it. Each row explains its own tie-break.","tags":["Public"],"operationId":"getPublicLeaguesBySlugStandings","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":64}},{"name":"season","in":"query","required":false,"schema":{"type":"string"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Embeddable public standings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"league":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"],"additionalProperties":false},"season":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},"generatedAt":{"type":"number"},"rows":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["league","season","generatedAt","rows"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/public/config":{"get":{"summary":"Runtime configuration for clients","description":"**No hostname is ever compiled in.** Origins come from environment bindings and, for white-label, from the tenant record — so swapping the public domain is a DNS change plus a redirect table, and the native apps pick it up from here rather than from a new build.","tags":["Public"],"operationId":"getPublicConfig","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Runtime configuration for clients","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"apiBase":{"type":"string","format":"uri"},"wsBase":{"type":"string"},"appBase":{"type":"string","format":"uri"},"spectatorBase":{"type":"string","format":"uri"},"joinBase":{"type":"string","format":"uri"},"apiVersion":{"type":"string"},"features":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"boolean"}}},"required":["apiBase","wsBase","appBase","spectatorBase","joinBase","apiVersion","features"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/public/minimum-build/{platform}":{"get":{"summary":"The minimum supported build","description":"Non-negotiable when a stale iPad could misreport state to a room. Requests carrying `Felt-Client-Build` below this get `426` with a structured body the app renders as a hard update wall.","tags":["Public"],"operationId":"getPublicMinimumBuildByPlatform","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","enum":["ios","ipados","tvos","web","android"]}},{"name":"build","in":"query","required":false,"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The minimum supported build","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"platform":{"type":"string"},"minimumBuild":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentBuild":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"message":{"type":"string"},"storeUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["platform","minimumBuild","currentBuild","message","storeUrl"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/public/health":{"get":{"summary":"Liveness","description":"","tags":["Public"],"operationId":"getPublicHealth","x-felt-idempotency":"not-required","security":[],"parameters":[{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Liveness","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ok":{"type":"boolean","const":true},"environment":{"type":"string"},"apiVersion":{"type":"string"},"time":{"type":"number"}},"required":["ok","environment","apiVersion","time"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments":{"get":{"summary":"List tournaments","description":"Reads the D1 projection. For live state, read the snapshot or hold a socket.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournaments","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"org","in":"query","required":false,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE","CANCELLED"]}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List tournaments","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":160},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE","CANCELLED"]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"leagueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seasonId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"scheduledStartAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"startingStack":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entryCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"levelIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"publicCode":{"type":"string","maxLength":12}},"required":["id","orgId","name","status","venueId","leagueId","seasonId","scheduledStartAt","currency","startingStack","entryCount","activeCount","prizePoolMinor","levelIndex","publicCode"],"additionalProperties":false}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a tournament","description":"Creates the D1 row **and** initialises the tournament's Durable Object with its `tournament.created` and `tournament.configured` events, so the log exists from the first moment rather than being lazily created on the first command.\n\nEvery product must decompose into destination-tagged fee components that add up to its price. A buy-in is never one number: `£20 = PRIZE_POOL 17.00 + HOUSE 2.00 + STAFF 1.00`, which is what makes the settlement report reconcilable line by line — and what makes rake structurally impossible to express.\n\n**Required scope:** `tournament:config`","tags":["Tournaments"],"operationId":"postTournaments","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"org","in":"query","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"leagueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seasonId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"scheduledStartAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"default":"GBP","example":"GBP","type":"string","minLength":3,"maxLength":3},"startingStack":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"structureTemplateId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"payoutSchemeId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"ruleProfileId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"chipSetId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"chipValueBasis":{"default":"TOURNAMENT","type":"string","enum":["TOURNAMENT","CASH"]},"products":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","enum":["BUY_IN","RE_ENTRY","REBUY","ADD_ON","BOUNTY","STAFF","OTHER"]},"name":{"type":"string","maxLength":120},"priceMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chips":{"type":"integer","minimum":0,"maximum":9007199254740991},"bountyMinor":{"default":0,"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"components":{"minItems":1,"type":"array","items":{"type":"object","properties":{"destination":{"type":"string","enum":["PRIZE_POOL","HOUSE","BOUNTY_POOL","STAFF","PROMO","CHARITY","TAX"]},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"label":{"type":"string","maxLength":64}},"required":["destination","amountMinor"]}}},"required":["id","kind","name","priceMinor","chips","components"]}},"tables":{"type":"array","items":{"type":"object","properties":{"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":2,"maximum":12},"breakOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["number","seatCount"]}}},"required":["name","startingStack","products"]}}}},"responses":{"201":{"description":"Create a tournament","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":160},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE","CANCELLED"]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"leagueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seasonId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"scheduledStartAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"startingStack":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entryCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"levelIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"publicCode":{"type":"string","maxLength":12}},"required":["id","orgId","name","status","venueId","leagueId","seasonId","scheduledStartAt","currency","startingStack","entryCount","activeCount","prizePoolMinor","levelIndex","publicCode"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}":{"get":{"summary":"Full projection snapshot","description":"The whole tournament as the Durable Object sees it right now, including the clock **anchor** rather than a countdown. Never store 'seconds remaining' — compute it locally from `(startedAtLeaderMono, levelDurationMs, pausedAccumMs)` against your own monotonic clock.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournament","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Full projection snapshot","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"patch":{"summary":"Update scheduling metadata","description":"Live state is changed with commands, never here.\n\n**Required scope:** `tournament:config`","tags":["Tournaments"],"operationId":"patchTournamentsByTournament","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"scheduledStartAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Update scheduling metadata","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"orgId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"name":{"type":"string","maxLength":160},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE","CANCELLED"]},"venueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"leagueId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"seasonId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"scheduledStartAt":{"anyOf":[{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"startingStack":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entryCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"levelIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"publicCode":{"type":"string","maxLength":12}},"required":["id","orgId","name","status","venueId","leagueId","seasonId","scheduledStartAt","currency","startingStack","entryCount","activeCount","prizePoolMinor","levelIndex","publicCode"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/entries":{"get":{"summary":"The entry list","description":"One row per **bullet**, not per player. A player with three re-entries has three rows: league points need the best or last one, prize-pool accounting needs all three, and conflating them is a rewrite-level mistake.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentEntries","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The entry list","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"entryOrdinal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["ACTIVE","BUSTED","DISQUALIFIED","REENTERED","ALTERNATE"]},"chips":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seat":{"anyOf":[{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tableNumber":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seat":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tableId","tableNumber","seat"],"additionalProperties":false},{"type":"null"}]},"finishingPlace":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"knockouts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bountyHeadMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidTotalMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rebuys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"addons":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","leaguePlayerId","displayName","entryOrdinal","status","chips","seat","finishingPlace","knockouts","bountyHeadMinor","paidTotalMinor","rebuys","addons"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/tables":{"get":{"summary":"The seat map","description":"\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentTables","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The seat map","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tables":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seatCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string"},"buttonSeat":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"seats":{"type":"array","items":{"type":"object","properties":{"seat":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entryId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"chips":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["seat","entryId","displayName","chips"],"additionalProperties":false}}},"required":["id","number","seatCount","status","buttonSeat","seats"],"additionalProperties":false}},"alternates":{"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"}},"required":["entryId","displayName"],"additionalProperties":false}}},"required":["tables","alternates"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/prize-pool":{"get":{"summary":"Prize pool, contributions and the current schedule","description":"The prize pool is Σ `PRIZE_POOL` components plus explicit contributions minus explicitly declared deductions. There is no term in that sum that could hold a percentage for Felt.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentPrizePool","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Prize pool, contributions and the current schedule","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bountyPoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"byDestination":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"contributions":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"source":{"type":"string"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","source","amountMinor","note"],"additionalProperties":false}},"deductions":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string"}},"required":["id","amountMinor","reason"],"additionalProperties":false}},"currentScheduleVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"provisional":{"type":"boolean"},"schedule":{"anyOf":[{"type":"object","properties":{"entries":{"type":"integer","minimum":0,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidPlaces":{"type":"integer","minimum":0,"maximum":9007199254740991},"lines":{"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":1,"maximum":9007199254740991},"amountMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bps":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","amountMinor","bps"],"additionalProperties":false}},"residualMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"residualDestination":{"type":"string","enum":["FIRST","LAST_PAID","BUBBLE","HOUSE","CHARITY"]},"residualRedirected":{"type":"boolean"},"bandIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"warnings":{"type":"array","items":{"type":"string"}}},"required":["entries","prizePoolMinor","paidPlaces","lines","residualMinor","residualDestination","residualRedirected","bandIndex","warnings"],"additionalProperties":false},{"type":"null"}]}},"required":["prizePoolMinor","bountyPoolMinor","currency","byDestination","contributions","deductions","currentScheduleVersion","provisional","schedule"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/results":{"get":{"summary":"Finishing order and winnings","description":"\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentResults","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Finishing order and winnings","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"place":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"leaguePlayerId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"winningsMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"knockouts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bountyWonMinor":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["place","entryId","leaguePlayerId","displayName","winningsMinor","knockouts","bountyWonMinor"],"additionalProperties":false}}},"required":["status","results"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/integrity":{"get":{"summary":"The live integrity panel","description":"Ten continuously-evaluated invariants, each in plain English with a delta and a suggested action.\n\nNothing here blocks. A TD trusts software that admits a discrepancy far more than software that hides one, so a mismatch surfaces with the number and a one-tap way to record a resolution — never a hard stop mid-event.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentIntegrity","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The live integrity panel","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"evaluatedAtSeq":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"warningCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"severity":{"type":"string","enum":["ok","warning","error"]},"message":{"type":"string"},"delta":{"anyOf":[{"type":"number"},{"type":"null"}]},"suggestion":{"anyOf":[{"type":"string"},{"type":"null"}]},"resolved":{"type":"boolean"}},"required":["id","title","severity","message","delta","suggestion","resolved"],"additionalProperties":false}}},"required":["evaluatedAtSeq","errorCount","warningCount","results"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/settlement":{"get":{"summary":"Reconciliation report: expected against actual, per line","description":"Reconciles cash counted against products sold. Felt records that money changed hands; it never holds it, and Felt's own fee never appears here because it is a flat subscription to the venue rather than anything derived from the pot.\n\n**Required scope:** `tournament:money`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentSettlement","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Reconciliation report: expected against actual, per line","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"currency":{"example":"GBP","type":"string","minLength":3,"maxLength":3},"generatedAtSeq":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"byMethod":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"lines":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"destination":{"anyOf":[{"type":"string"},{"type":"null"}]},"expectedMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"actualMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deltaMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["label","destination","expectedMinor","actualMinor","deltaMinor","note"],"additionalProperties":false}},"cashExpectedMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"prizePoolMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidOutMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"outstandingPayoutsMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balanced":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}}},"required":["tournamentId","currency","generatedAtSeq","byMethod","lines","cashExpectedMinor","prizePoolMinor","paidOutMinor","outstandingPayoutsMinor","balanced","notes"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/balance":{"get":{"summary":"Proposed table-balancing moves","description":"TDA Rule 11: move the player due to be **big blind next**, into the **worst position** at the destination, never the small blind. Tables three or more short are reported as halted.\n\nThis endpoint only ever **proposes**. Applying it is a separate `balance.apply` command, and the override is logged — the TD is accountable to the room, and when the software is wrong and it acted alone they have no defensible answer.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentBalance","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Proposed table-balancing moves","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"moves":{"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"from":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tableNumber":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seat":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tableId","tableNumber","seat"],"additionalProperties":false},"to":{"type":"object","properties":{"tableId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tableNumber":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seat":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tableId","tableNumber","seat"],"additionalProperties":false},"reason":{"type":"string"}},"required":["entryId","displayName","from","to","reason"],"additionalProperties":false}},"haltedTableIds":{"type":"array","items":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},"balancedAfter":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string"}}},"required":["moves","haltedTableIds","balancedAfter","warnings"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/deal-preview":{"post":{"summary":"ICM and chip chop, side by side","description":"Exact memoised Malmuth-Harville up to fifteen players and seeded Monte Carlo above, alongside chip-chop-with-a-min-cash-floor, with a per-player delta between them.\n\nThat comparison is what a TD actually needs at a final table and almost nothing provides on a tablet. Raw proportional chip chop is deliberately not offered: it can pay a short stack less than their guaranteed min-cash.\n\n**Required scope:** `tournament:money`","tags":["Tournaments"],"operationId":"postTournamentsByTournamentDealPreview","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"method":{"default":"BOTH","type":"string","enum":["ICM","CHIP_CHOP","BOTH"]},"seed":{"type":"string","maxLength":128}}}}}},"responses":{"200":{"description":"ICM and chip chop, side by side","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"totalToDistributeMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"minCashMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"method":{"type":"string","enum":["exact","monte-carlo"]},"seed":{"anyOf":[{"type":"string"},{"type":"null"}]},"iterations":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"lines":{"type":"array","items":{"type":"object","properties":{"entryId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"displayName":{"type":"string"},"chips":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"icmMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chipChopMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deltaMinor":{"description":"An integer number of minor units (pence).","example":2000,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["entryId","displayName","chips","icmMinor","chipChopMinor","deltaMinor"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"}}},"required":["totalToDistributeMinor","minCashMinor","method","seed","iterations","lines","warnings"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/events":{"get":{"summary":"The event log","description":"`?since=<seq>`, cursor-paged. `seq` is dense and gapless per (tournament, epoch), so gap detection is a subtraction — no vector clocks. Every event carries its `prevHash`; `/verify-chain` re-derives the whole chain if you want to check it yourself.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentEvents","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"since","in":"query","required":false,"schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"limit","in":"query","required":false,"schema":{"default":200,"type":"integer","minimum":1,"maximum":1000}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"The event log","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"page":{"type":"object","properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"}},"required":["next_cursor","has_more"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/verify-chain":{"get":{"summary":"Verify the hash chain","description":"Re-derives every link and reports the first break, if any. 'Prove the log was not edited' is a question a casino procurement review asks, and the only good answer is one they can run themselves.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentVerifyChain","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Verify the hash chain","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"valid":{"type":"boolean"},"checked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"brokenAtSeq":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["valid","checked","brokenAtSeq"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/export":{"get":{"summary":"Export the whole tournament","description":"Full export, always, no negotiation. It is a sales asset, a GDPR obligation and the 'free to leave' limb of the compliance substance test at the same time.\n\n`format=json` returns the complete snapshot and log; `format=csv` returns the results table; `format=structure` returns the printable structure sheet and payout table — which is the professional answer to 'the pub's internet died'.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentExport","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"format","in":"query","required":false,"schema":{"default":"json","type":"string","enum":["json","csv","structure"]}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Export the whole tournament","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/flights":{"get":{"summary":"List flights","description":"\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"getTournamentsByTournamentFlights","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"List flights","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"dayId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"name":{"type":"string","maxLength":120},"startsAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE"]}},"required":["id","tournamentId","dayId","name","startsAt","status"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"post":{"summary":"Create a flight","description":"\n\n**Required scope:** `tournament:config`","tags":["Tournaments"],"operationId":"postTournamentsByTournamentFlights","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"dayId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["name"]}}}},"responses":{"201":{"description":"Create a flight","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"dayId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"name":{"type":"string","maxLength":120},"startsAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE"]}},"required":["id","tournamentId","dayId","name","startsAt","status"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/flights/{flight}":{"patch":{"summary":"Update a flight","description":"\n\n**Required scope:** `tournament:config`","tags":["Tournaments"],"operationId":"patchTournamentsByTournamentFlightsByFlight","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"flight","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"dayId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE"]}}}}}},"responses":{"200":{"description":"Update a flight","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"tournamentId":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},"dayId":{"anyOf":[{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}]},"name":{"type":"string","maxLength":120},"startsAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETE"]}},"required":["id","tournamentId","dayId","name","startsAt","status"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}},"delete":{"summary":"Delete a flight","description":"\n\n**Required scope:** `tournament:config`","tags":["Tournaments"],"operationId":"deleteTournamentsByTournamentFlightsByFlight","x-felt-idempotency":"required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"flight","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"UUIDv7, stable across retries of the same intent. Reusing a key with a different body returns 422. A TD on pub Wi-Fi will double-tap; this is what makes that harmless.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"responses":{"200":{"description":"Delete a flight","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}},"/tournaments/{tournament}/ws-ticket":{"post":{"summary":"Mint a short-lived WebSocket ticket","description":"Returns a ticket that authorises **one** WebSocket upgrade to this tournament, and nothing else. It is rejected by every other endpoint.\n\nThe `role` in the body is a hint for the initial snapshot shape; the server intersects it with the scopes your credential actually resolves to and returns what you got. Role never comes from the client.\n\nScopes are frozen at mint time, so a revocation inside the ~60s TTL is not reflected in the ticket. Device revocation is still enforced on every intent inside the room, which is where instant revocation actually lives.\n\nA spectator needs none of this: `/v1/tournaments/{tournament}/ws?role=spectator` takes no credential at all.\n\n**Required scope:** `tournament:read`","tags":["Tournaments"],"operationId":"postTournamentsByTournamentWsTicket","x-felt-idempotency":"not-required","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"tournament","in":"path","required":true,"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","schema":{"description":"A ULID — 26 characters, Crockford base32, lexicographically sortable.","example":"01J8Z3QK9V7WT0X2M4N6P8R1SA","type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$"}},{"name":"Felt-API-Version","in":"header","required":false,"description":"Date-versioned additive changes. Current: 2026-08-17.","schema":{"type":"string","default":"2026-08-17"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"role":{"default":"director","type":"string","enum":["director","desk","floor","display","spectator"]}}}}}},"responses":{"201":{"description":"Mint a short-lived WebSocket ticket","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticket":{"type":"string"},"url":{"type":"string","format":"uri"},"expiresAt":{"description":"Unix milliseconds.","type":"integer","minimum":0,"maximum":9007199254740991},"role":{"type":"string","enum":["director","desk","floor","display","spectator","api"]}},"required":["ticket","url","expiresAt","role"],"additionalProperties":false}}}},"400":{"description":"Malformed request","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"401":{"description":"Not authenticated","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"403":{"description":"Not allowed for this principal","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"409":{"description":"Precondition failed — switch on the `code` field","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"422":{"description":"Validation failed, or an Idempotency-Key conflict","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"426":{"description":"Client build is below the minimum supported build","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"429":{"description":"Rate limited","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}},"500":{"description":"Internal error","content":{"application/problem+json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"example":"https://feltpoker.uk/problems/seat-conflict","type":"string"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","enum":["UNKNOWN_COMMAND","TOURNAMENT_NOT_RUNNING","TOURNAMENT_COMPLETE","REGISTRATION_CLOSED","REGISTRATION_ALREADY_OPEN","UNKNOWN_ENTRY","UNKNOWN_PRODUCT","UNKNOWN_TABLE","TABLE_CLOSED","SEAT_CONFLICT","SEAT_OUT_OF_RANGE","NOT_SEATED","ALREADY_BUSTED","NOT_BUSTED","SELF_ELIMINATION","CLOCK_NOT_RUNNING","CLOCK_ALREADY_RUNNING","CLOCK_NOT_PAUSED","NO_SUCH_LEVEL","NO_STRUCTURE","NO_PAYOUT_SCHEME","PAYOUT_NOT_PUBLISHED","PAYOUT_ALREADY_PAID","PLACE_NOT_PAID","COLORUP_NOT_ACTIVE","COLORUP_ALREADY_ACTIVE","MYSTERY_NOT_ACTIVE","NO_ENVELOPES_LEFT","UNKNOWN_TICKET","UNKNOWN_DEAL","DEAL_NOT_PROPOSED","NOT_ENOUGH_SEATS","STALE_INTENT","SEED_REQUIRED","INVARIANT_VIOLATION","PRECONDITION_FAILED","FORBIDDEN_FOR_PRINCIPAL","VALIDATION_FAILED","IDEMPOTENCY_CONFLICT","UPGRADE_REQUIRED","RATE_LIMITED","NOT_FOUND","CONFLICT","INTERNAL"]},"request_id":{"type":"string"},"errors":{"description":"Field-level validation failures.","type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","title","status","code","request_id"],"additionalProperties":false}}}}}}}}}