{"openapi":"3.1.0","info":{"title":"Community Raiders curated API contract","version":"1.0","description":"Verified registered request schemas plus explicit authorization notes. Response bodies are partly untyped in current source; see the API guide. This is not a live request console."},"servers":[{"url":"https://api.communityraiders.com"}],"paths":{"/healthz":{"get":{"summary":"Health","operationId":"health_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"public","description":"Public read/discovery operation. A room code resolves a room; it is not viewer identity or creator authority.","security":[]}},"/api/config":{"get":{"summary":"Config","operationId":"config_api_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"public","description":"Public read/discovery operation. A room code resolves a room; it is not viewer identity or creator authority.","security":[]}},"/api/character-options":{"get":{"summary":"Character Options","operationId":"character_options_api_character_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"public","description":"Public read/discovery operation. A room code resolves a room; it is not viewer identity or creator authority.","security":[]}},"/api/player/session":{"get":{"summary":"Player Session","operationId":"player_session_api_player_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"website","description":"Verified website principal. Community-specific routes additionally require the player-associated raider; session/community discovery does not require one. Selection grants no creator administration.","security":[{"WebsiteSession":[]},{"RaidervilleSession":[]}]}},"/api/player/communities":{"get":{"summary":"Communities","operationId":"communities_api_player_communities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"website","description":"Verified website principal. Community-specific routes additionally require the player-associated raider; session/community discovery does not require one. Selection grants no creator administration.","security":[{"WebsiteSession":[]},{"RaidervilleSession":[]}]}},"/api/player/communities/{community_id}/character":{"get":{"summary":"Character","operationId":"character_api_player_communities__community_id__character_get","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"website","description":"Verified website principal. Community-specific routes additionally require the player-associated raider; session/community discovery does not require one. Selection grants no creator administration.","security":[{"WebsiteSession":[]},{"RaidervilleSession":[]}]}},"/api/player/communities/{community_id}/inventory":{"get":{"summary":"Items","operationId":"items_api_player_communities__community_id__inventory_get","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"website","description":"Verified website principal. Community-specific routes additionally require the player-associated raider; session/community discovery does not require one. Selection grants no creator administration.","security":[{"WebsiteSession":[]},{"RaidervilleSession":[]}]}},"/api/player/communities/{community_id}/character/materials":{"put":{"summary":"Materials","operationId":"materials_api_player_communities__community_id__character_materials_put","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MaterialAppearance"},{"$ref":"#/components/schemas/StyledMaterialAppearance"},{"$ref":"#/components/schemas/BodyMaterialAppearance"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"website-write","description":"Website principal, associated raider, exact allowed website Origin and current X-CSRF-Token; accepted-state ownership checks apply.","security":[{"WebsiteSession":[],"CSRF":[]},{"RaidervilleSession":[],"CSRF":[]}]}},"/api/player/communities/{community_id}/inventory/equip":{"put":{"summary":"Equip","operationId":"equip_api_player_communities__community_id__inventory_equip_put","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerEquip"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"website-write","description":"Website principal, associated raider, exact allowed website Origin and current X-CSRF-Token; accepted-state ownership checks apply.","security":[{"WebsiteSession":[],"CSRF":[]},{"RaidervilleSession":[],"CSRF":[]}]}},"/api/player/logout":{"post":{"summary":"Logout","operationId":"logout_api_player_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerLogout","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"website-write","description":"Website principal, associated raider, exact allowed website Origin and current X-CSRF-Token; accepted-state ownership checks apply. When both same-account website-player and creator sessions exist, creator_csrf_token in the body must also validate before either is ended.","security":[{"WebsiteSession":[],"CSRF":[]},{"RaidervilleSession":[],"CSRF":[]}]}},"/api/session":{"get":{"summary":"Session Info","operationId":"session_info_api_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"creator","description":"Verified application session. Routes naming a creator community additionally enforce its ownership.","security":[{"WebsiteSession":[]}]}},"/api/communities/{community_id}/workspace":{"get":{"summary":"Workspace","operationId":"workspace_api_communities__community_id__workspace_get","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"creator","description":"Verified application session. Routes naming a creator community additionally enforce its ownership.","security":[{"WebsiteSession":[]}]}},"/api/communities/{community_id}/settings":{"patch":{"summary":"Update","operationId":"update_api_communities__community_id__settings_patch","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommunityUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"creator-write","description":"Owning creator session, exact allowed website Origin and current X-CSRF-Token.","security":[{"WebsiteSession":[],"CSRF":[]}]}},"/api/communities/{community_id}/overlay-key":{"post":{"summary":"Overlay Key","operationId":"overlay_key_api_communities__community_id__overlay_key_post","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"creator-write","description":"Owning creator session, exact allowed website Origin and current X-CSRF-Token.","security":[{"WebsiteSession":[],"CSRF":[]}]}},"/api/logout":{"post":{"summary":"Logout","operationId":"logout_api_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"creator-write","description":"Owning creator session, exact allowed website Origin and current X-CSRF-Token.","security":[{"WebsiteSession":[],"CSRF":[]}]}},"/api/extension/session":{"get":{"summary":"Extension State","operationId":"extension_state_api_extension_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"extension","description":"Cookie-free signed linked Twitch Extension viewer JWT plus approved Origin. Verified channel selects community server-side; query parameters rejected.","security":[{"TwitchExtensionJWT":[]}]}},"/api/extension/inventory":{"get":{"summary":"Extension State","operationId":"extension_state_api_extension_inventory_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"extension","description":"Cookie-free signed linked Twitch Extension viewer JWT plus approved Origin. Verified channel selects community server-side; query parameters rejected.","security":[{"TwitchExtensionJWT":[]}]}},"/api/extension/raider":{"post":{"summary":"Create Viewer Raider","operationId":"create_viewer_raider_api_extension_raider_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRaider","default":{"materials":{"tunic":"green","hair":"chestnut","skin":"original","pants":"dark-brown","boots":"brown","belt_id":"brown-brass"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"extension","description":"Cookie-free signed linked Twitch Extension viewer JWT plus approved Origin. Verified channel selects community server-side; query parameters rejected.","security":[{"TwitchExtensionJWT":[]}]}},"/api/extension/appearance":{"put":{"summary":"Extension Appearance","operationId":"extension_appearance_api_extension_appearance_put","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/MaterialAppearance"},{"$ref":"#/components/schemas/StyledMaterialAppearance"},{"$ref":"#/components/schemas/BodyMaterialAppearance"}],"title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"extension","description":"Cookie-free signed linked Twitch Extension viewer JWT plus approved Origin. Verified channel selects community server-side; query parameters rejected.","security":[{"TwitchExtensionJWT":[]}]}},"/api/extension/equipment":{"put":{"summary":"Extension Equip","operationId":"extension_equip_api_extension_equipment_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"extension","description":"Cookie-free signed linked Twitch Extension viewer JWT plus approved Origin. Verified channel selects community server-side; query parameters rejected.","security":[{"TwitchExtensionJWT":[]}]}},"/api/overlay/{community_id}/state":{"get":{"summary":"Overlay State","operationId":"overlay_state_api_overlay__community_id__state_get","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"overlay","description":"Separate revocable read-only overlay bearer; creator cookies do not substitute.","security":[{"OverlayBearer":[]}]}},"/api/raiderville/resolve":{"post":{"summary":"Resolve Room","operationId":"resolve_room_api_raiderville_resolve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"public","description":"Public read/discovery operation. A room code resolves a room; it is not viewer identity or creator authority.","security":[]}},"/api/raiderville/access":{"post":{"summary":"Access Room","operationId":"access_room_api_raiderville_access_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room-write","description":"Verified website-player session, exact website Origin and current X-CSRF-Token. A valid supplied code resolves the room server-side and creates its access grant; an existing grant is not required.","security":[{"RaidervilleSession":[],"CSRF":[]}]}},"/api/raiderville/viewer":{"get":{"summary":"Viewer Info","operationId":"viewer_info_api_raiderville_viewer_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"room","description":"Verified Raiderville website-player session. Room-specific routes additionally require its valid room access grant.","security":[{"RaidervilleSession":[]}]}},"/api/communities/{community_id}/raiderville/rooms":{"post":{"summary":"Open Room","operationId":"open_room_api_communities__community_id__raiderville_rooms_post","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"creator-write","description":"Owning creator session, exact allowed website Origin and current X-CSRF-Token.","security":[{"WebsiteSession":[],"CSRF":[]}]}},"/api/communities/{community_id}/raiderville/rooms/{room_id}/close":{"post":{"summary":"Close Room","operationId":"close_room_api_communities__community_id__raiderville_rooms__room_id__close_post","parameters":[{"name":"community_id","in":"path","required":true,"schema":{"type":"string","title":"Community Id"}},{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"creator-write","description":"Owning creator session, exact allowed website Origin and current X-CSRF-Token.","security":[{"WebsiteSession":[],"CSRF":[]}]}},"/api/raiderville/rooms/{room_id}/join":{"post":{"summary":"Join","operationId":"join_api_raiderville_rooms__room_id__join_post","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room-write","description":"Verified Raiderville viewer session, exact website Origin and X-CSRF-Token. Room-specific operations enforce room access; movement/heartbeat also enforce the current controller lease and page client_id.","security":[{"RaidervilleSession":[],"CSRF":[]}]}},"/api/raiderville/rooms/{room_id}/state":{"get":{"summary":"State","operationId":"state_api_raiderville_rooms__room_id__state_get","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room","description":"Verified Raiderville website-player session. Room-specific routes additionally require its valid room access grant.","security":[{"RaidervilleSession":[]}]}},"/api/raiderville/rooms/{room_id}/heartbeat":{"post":{"summary":"Heartbeat","operationId":"heartbeat_api_raiderville_rooms__room_id__heartbeat_post","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room-write","description":"Verified Raiderville viewer session, exact website Origin and X-CSRF-Token. Room-specific operations enforce room access; movement/heartbeat also enforce the current controller lease and page client_id.","security":[{"RaidervilleSession":[],"CSRF":[]}]}},"/api/raiderville/rooms/{room_id}/move":{"post":{"summary":"Move","operationId":"move_api_raiderville_rooms__room_id__move_post","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room-write","description":"Verified Raiderville viewer session, exact website Origin and X-CSRF-Token. Room-specific operations enforce room access; movement/heartbeat also enforce the current controller lease and page client_id.","security":[{"RaidervilleSession":[],"CSRF":[]}]}},"/api/raiderville/rooms/{room_id}/leave":{"post":{"summary":"Leave","operationId":"leave_api_raiderville_rooms__room_id__leave_post","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-community-raiders-auth":"room-write","description":"Verified Raiderville viewer session, exact website Origin and X-CSRF-Token. Room-specific operations enforce room access; movement/heartbeat also enforce the current controller lease and page client_id.","security":[{"RaidervilleSession":[],"CSRF":[]}]}},"/api/raiderville/logout":{"post":{"summary":"Logout","operationId":"logout_api_raiderville_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-community-raiders-auth":"room-write","description":"Idempotent website-player logout. Exact website Origin is always required; current session CSRF is required only when a session exists. Room access is not required.","security":[{},{"RaidervilleSession":[],"CSRF":[]}]}}},"components":{"schemas":{"BodyMaterialAppearance":{"properties":{"tunic":{"type":"string","enum":["green","blue"],"title":"Tunic","default":"green"},"hair":{"type":"string","enum":["chestnut","dark-brown"],"title":"Hair","default":"chestnut"},"skin":{"type":"string","enum":["original","warm-bronze","deep-brown"],"title":"Skin","default":"original"},"pants":{"type":"string","enum":["dark-brown","navy"],"title":"Pants","default":"dark-brown"},"boots":{"type":"string","enum":["brown","dark-walnut"],"title":"Boots","default":"brown"},"belt_id":{"type":"string","enum":["brown-brass","dark-steel"],"title":"Belt Id","default":"brown-brass"},"body_type":{"type":"string","enum":["male","female"],"title":"Body Type"},"style_selection":{"anyOf":[{"$ref":"#/components/schemas/OutfitStyles"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["body_type"],"title":"BodyMaterialAppearance"},"CodeInput":{"properties":{"code":{"type":"string","maxLength":40,"minLength":1,"title":"Code"}},"additionalProperties":false,"type":"object","required":["code"],"title":"CodeInput"},"CommunityUpdate":{"properties":{"display_name":{"type":"string","maxLength":60,"minLength":1,"title":"Display Name"},"encounter_interval_minutes":{"anyOf":[{"type":"integer","maximum":1440.0,"minimum":1.0},{"type":"null"}],"title":"Encounter Interval Minutes"},"raid_message":{"type":"string","maxLength":500,"title":"Raid Message","default":""},"join_command_enabled":{"type":"boolean","title":"Join Command Enabled","default":true},"join_command":{"type":"string","maxLength":25,"minLength":2,"title":"Join Command","default":"!join"}},"additionalProperties":false,"type":"object","required":["display_name"],"title":"CommunityUpdate"},"CreateRaider":{"properties":{"materials":{"anyOf":[{"$ref":"#/components/schemas/MaterialAppearance"},{"$ref":"#/components/schemas/StyledMaterialAppearance"},{"$ref":"#/components/schemas/BodyMaterialAppearance"}],"title":"Materials","default":{"tunic":"green","hair":"chestnut","skin":"original","pants":"dark-brown","boots":"brown","belt_id":"brown-brass"}}},"additionalProperties":false,"type":"object","title":"CreateRaider"},"EquipUpdate":{"properties":{"slot":{"type":"string","enum":["head","body","belt","pants","boots","left_hand","right_hand"],"title":"Slot"},"item_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Item Id"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["slot","revision"],"title":"EquipUpdate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JoinInput":{"properties":{"client_id":{"type":"string","maxLength":80,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","title":"Client Id"}},"additionalProperties":false,"type":"object","required":["client_id"],"title":"JoinInput"},"MaterialAppearance":{"properties":{"tunic":{"type":"string","enum":["green","blue"],"title":"Tunic","default":"green"},"hair":{"type":"string","enum":["chestnut","dark-brown"],"title":"Hair","default":"chestnut"},"skin":{"type":"string","enum":["original","warm-bronze","deep-brown"],"title":"Skin","default":"original"},"pants":{"type":"string","enum":["dark-brown","navy"],"title":"Pants","default":"dark-brown"},"boots":{"type":"string","enum":["brown","dark-walnut"],"title":"Boots","default":"brown"},"belt_id":{"type":"string","enum":["brown-brass","dark-steel"],"title":"Belt Id","default":"brown-brass"}},"additionalProperties":false,"type":"object","title":"MaterialAppearance"},"MoveInput":{"properties":{"client_id":{"type":"string","maxLength":80,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","title":"Client Id"},"sequence":{"type":"integer","maximum":2147483647.0,"minimum":1.0,"title":"Sequence"},"layout_id":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z0-9-]+$","title":"Layout Id","default":"legacy-1600x900"},"x":{"type":"number","maximum":8192.0,"minimum":0.0,"title":"X"},"y":{"type":"number","maximum":8192.0,"minimum":0.0,"title":"Y"}},"additionalProperties":false,"type":"object","required":["client_id","sequence","x","y"],"title":"MoveInput"},"OutfitFootwear":{"properties":{"style":{"type":"string","enum":["original","reinforced-work"],"title":"Style","default":"original"},"finish":{"type":"string","enum":["brown","black"],"title":"Finish","default":"brown"}},"additionalProperties":false,"type":"object","title":"OutfitFootwear"},"OutfitStyles":{"properties":{"chest":{"type":"string","enum":["peasant","blacksmith-apron-candidate","baker-apron-v1"],"title":"Chest","default":"peasant"},"chestFinish":{"type":"string","enum":["natural","blue-black"],"title":"Chestfinish","default":"natural"},"footwear":{"$ref":"#/components/schemas/OutfitFootwear","default":{"style":"original","finish":"brown"}}},"additionalProperties":false,"type":"object","title":"OutfitStyles"},"PlayerEquip":{"properties":{"slot":{"type":"string","enum":["head","body","belt","pants","boots","left_hand","right_hand"],"title":"Slot"},"item_id":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Item Id"},"revision":{"type":"integer","minimum":0.0,"title":"Revision"}},"additionalProperties":false,"type":"object","required":["slot","revision"],"title":"PlayerEquip"},"PlayerLogout":{"properties":{"creator_csrf_token":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Creator Csrf Token"}},"additionalProperties":false,"type":"object","title":"PlayerLogout"},"RoomInput":{"properties":{"request_key":{"type":"string","maxLength":80,"minLength":8,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Key"}},"additionalProperties":false,"type":"object","required":["request_key"],"title":"RoomInput"},"StyledMaterialAppearance":{"properties":{"tunic":{"type":"string","enum":["green","blue"],"title":"Tunic","default":"green"},"hair":{"type":"string","enum":["chestnut","dark-brown"],"title":"Hair","default":"chestnut"},"skin":{"type":"string","enum":["original","warm-bronze","deep-brown"],"title":"Skin","default":"original"},"pants":{"type":"string","enum":["dark-brown","navy"],"title":"Pants","default":"dark-brown"},"boots":{"type":"string","enum":["brown","dark-walnut"],"title":"Boots","default":"brown"},"belt_id":{"type":"string","enum":["brown-brass","dark-steel"],"title":"Belt Id","default":"brown-brass"},"style_selection":{"$ref":"#/components/schemas/OutfitStyles"}},"additionalProperties":false,"type":"object","required":["style_selection"],"title":"StyledMaterialAppearance"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"WebsiteSession":{"type":"apiKey","in":"cookie","name":"__Host-cr_session","description":"Production API-host application session. Creator ownership is checked separately; local HTTP uses the existing unprefixed test name."},"RaidervilleSession":{"type":"apiKey","in":"cookie","name":"__Host-cr_rv_session","description":"Production room-bound website-player identity. Knowing a room ID is not an access grant."},"CSRF":{"type":"apiKey","in":"header","name":"X-CSRF-Token","description":"Current verified session CSRF; exact configured website Origin is also required."},"TwitchExtensionJWT":{"type":"http","scheme":"bearer","bearerFormat":"Twitch Extension JWT","description":"Linked viewer/channel identity from Twitch helper; approved Origin required; never creator OAuth or a client-made test identity."},"OverlayBearer":{"type":"http","scheme":"bearer","description":"Revocable read-only overlay bearer. Keep its generated URL private."}}},"x-verified-source-revision":"a8bf2e0ef34b5911e0dfa48fe87beb23fba0d323","x-updated":"2026-10-26"}