{"openapi":"3.1.0","info":{"title":"Archivist Public API","description":"Public API for Archivist - Tabletop RPG Campaign Management","version":"1.0.0"},"paths":{"/health":{"get":{"tags":["system"],"summary":"Health Check","description":"Lightweight health check endpoint for Railway","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"tags":["system"],"summary":"Root","description":"Root endpoint with API information","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/database":{"get":{"tags":["system"],"summary":"Database Health Check","description":"Detailed database health check endpoint","operationId":"database_health_check_health_database_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1":{"get":{"tags":["system"],"summary":"Api V1 Info","description":"API v1 information","operationId":"api_v1_info_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/campaigns":{"get":{"tags":["campaigns"],"summary":"List Campaigns","description":"List campaigns accessible to the authenticated user.","operationId":"list_campaigns_v1_campaigns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["campaigns"],"summary":"Create Campaign","description":"Create a new campaign.","operationId":"create_campaign_v1_campaigns_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}":{"get":{"tags":["campaigns"],"summary":"Get Campaign","description":"Get a specific campaign by ID.","operationId":"get_campaign_v1_campaigns__campaign_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["campaigns"],"summary":"Patch Campaign","description":"Partially update a campaign.","operationId":"patch_campaign_v1_campaigns__campaign_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["campaigns"],"summary":"Delete Campaign","description":"Delete a campaign owned by the user.","operationId":"delete_campaign_v1_campaigns__campaign_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/stats":{"get":{"tags":["campaigns"],"summary":"Get Campaign Stats","description":"Get statistics for a campaign.","operationId":"get_campaign_stats_v1_campaigns__campaign_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/links":{"get":{"tags":["campaigns"],"summary":"List Campaign Links","operationId":"list_campaign_links_v1_campaigns__campaign_id__links_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"to_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Id"}},{"name":"from_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Id"}},{"name":"to_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Type"}},{"name":"from_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Type"}},{"name":"alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["campaigns"],"summary":"Create Campaign Link","operationId":"create_campaign_link_v1_campaigns__campaign_id__links_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/links/{link_id}":{"patch":{"tags":["campaigns"],"summary":"Patch Campaign Link","operationId":"patch_campaign_link_v1_campaigns__campaign_id__links__link_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","title":"Link Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["campaigns"],"summary":"Delete Campaign Link","operationId":"delete_campaign_link_v1_campaigns__campaign_id__links__link_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","title":"Link Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/worlds":{"get":{"tags":["worlds"],"summary":"List Worlds","description":"List worlds with pagination and filtering.\n\n- **search**: Search in title and description\n- **owner_id**: Filter by world owner\n- **public_only**: Show only public worlds","operationId":"list_worlds_v1_worlds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["worlds"],"summary":"Create World","description":"Create a new world.\n\nRequires authentication. The authenticated user becomes the owner.","operationId":"create_world_v1_worlds_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/worlds/{world_id}":{"get":{"tags":["worlds"],"summary":"Get World","description":"Get a specific world by ID.\n\nReturns full world details if user has access.","operationId":"get_world_v1_worlds__world_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["worlds"],"summary":"Patch World","description":"Partially update a world.\n\nRequires write access to the world.","operationId":"patch_world_v1_worlds__world_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorldRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/worlds/{world_id}/stats":{"get":{"tags":["worlds"],"summary":"Get World Stats","description":"Get statistics for a world.\n\nReturns counts of characters, sessions, moments, etc.","operationId":"get_world_stats_v1_worlds__world_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/worlds/{world_id}/links":{"get":{"tags":["worlds"],"summary":"List Links","operationId":"list_links_v1_worlds__world_id__links_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["worlds"],"summary":"Create Link","operationId":"create_link_v1_worlds__world_id__links_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/worlds/{world_id}/links/{link_id}":{"patch":{"tags":["worlds"],"summary":"Patch Link","operationId":"patch_link_v1_worlds__world_id__links__link_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","title":"Link Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["worlds"],"summary":"Delete Link","operationId":"delete_link_v1_worlds__world_id__links__link_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"world_id","in":"path","required":true,"schema":{"type":"string","title":"World Id"}},{"name":"link_id","in":"path","required":true,"schema":{"type":"string","title":"Link Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/characters":{"get":{"tags":["characters"],"summary":"List Characters","description":"List characters in a world with pagination and filtering.\n\n- **world_id**: Required world ID\n- **search**: Search by character name\n- **character_type**: Filter by type (PC, NPC, etc.)\n- **approved_only**: Show only approved characters","operationId":"list_characters_v1_characters_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter characters","title":"Campaign Id"},"description":"Campaign ID to filter characters"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search characters by name","title":"Search"},"description":"Search characters by name"},{"name":"character_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by character type (PC, NPC, etc.)","title":"Character Type"},"description":"Filter by character type (PC, NPC, etc.)"},{"name":"approved_only","in":"query","required":false,"schema":{"type":"boolean","description":"Show only approved characters","default":true,"title":"Approved Only"},"description":"Show only approved characters"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return descriptions with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return descriptions with [[wikilinks]] intact"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["characters"],"summary":"Create Character","description":"Create a new character in a world.\n\nRequires write access to the world.","operationId":"create_character_v1_characters_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/characters/{character_id}":{"get":{"tags":["characters"],"summary":"Get Character","description":"Get a specific character by ID.","operationId":"get_character_v1_characters__character_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"character_id","in":"path","required":true,"schema":{"type":"string","title":"Character Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return description with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return description with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["characters"],"summary":"Patch Character","description":"Partially update a character.\n\nRequires write access to the associated world.","operationId":"patch_character_v1_characters__character_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"character_id","in":"path","required":true,"schema":{"type":"string","title":"Character Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharacterRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["characters"],"summary":"Delete Character","description":"Delete a character.\n\nRequires write access to the associated world.","operationId":"delete_character_v1_characters__character_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"character_id","in":"path","required":true,"schema":{"type":"string","title":"Character Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/characters/links/maintenance":{"post":{"tags":["characters"],"summary":"Trigger Character Links Maintenance","operationId":"trigger_character_links_maintenance_v1_characters_links_maintenance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LinkMaintenanceRequest"},{"$ref":"#/components/schemas/LinkMaintenanceUpdateRequest"}],"title":"Maintenance"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkMaintenanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sessions":{"get":{"tags":["game sessions"],"summary":"List Sessions","description":"List game sessions in a world with pagination and filtering.\n\n- **world_id**: Required world ID\n- **session_type**: Filter by session type\n- **public_only**: Show only public sessions","operationId":"list_sessions_v1_sessions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter sessions","title":"Campaign Id"},"description":"Campaign ID to filter sessions"},{"name":"session_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/GameSessionType"},{"type":"null"}],"description":"Filter by session type","title":"Session Type"},"description":"Filter by session type"},{"name":"public_only","in":"query","required":false,"schema":{"type":"boolean","description":"Show only public sessions","default":false,"title":"Public Only"},"description":"Show only public sessions"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return summaries with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return summaries with [[wikilinks]] intact"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sessions/{session_id}":{"get":{"tags":["game sessions"],"summary":"Get Session Detail","description":"Get a specific game session by ID.","operationId":"get_session_detail_v1_sessions__session_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"include_beats","in":"query","required":false,"schema":{"type":"boolean","description":"Include related beats","default":false,"title":"Include Beats"},"description":"Include related beats"},{"name":"include_moments","in":"query","required":false,"schema":{"type":"boolean","description":"Include related moments","default":false,"title":"Include Moments"},"description":"Include related moments"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return summary with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return summary with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["game sessions"],"summary":"Patch Session","description":"Patch a game session.\n\nOnly `title`, `session_date`, and `summary` may be updated.\nRequires write access to the associated world.","operationId":"patch_session_v1_sessions__session_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sessions/{session_id}/cast-analysis":{"get":{"tags":["game sessions"],"summary":"Get Session Cast Analysis","description":"Get stored cast analysis data for a game session.","operationId":"get_session_cast_analysis_v1_sessions__session_id__cast_analysis_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CastAnalysisRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sessions/{session_id}/handout":{"get":{"tags":["game sessions"],"summary":"Get Session Handout","description":"Get the session handout for a game session.\n\nReturns the structured handout if one exists (DB record or legacy R2 blob).\nReturns 404 if no handout has been generated for this session.","operationId":"get_session_handout_v1_sessions__session_id__handout_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionHandoutRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sessions/{session_id}/transcript":{"get":{"tags":["game sessions"],"summary":"Get Session Transcript","description":"Get the cleaned transcript for a game session.\n\nReturns the processed transcript with utterances, full text, and stats.\nThe raw/uncleaned utterances are excluded.","operationId":"get_session_transcript_v1_sessions__session_id__transcript_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/users/me":{"get":{"tags":["users"],"summary":"Get Me","operationId":"get_me_v1_users_me_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/factions":{"get":{"tags":["factions"],"summary":"List Factions","operationId":"list_factions_v1_factions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter factions","title":"Campaign Id"},"description":"Campaign ID to filter factions"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search factions by name","title":"Search"},"description":"Search factions by name"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return descriptions with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return descriptions with [[wikilinks]] intact"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["factions"],"summary":"Create Faction","operationId":"create_faction_v1_factions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/factions/{faction_id}":{"get":{"tags":["factions"],"summary":"Get Faction","operationId":"get_faction_v1_factions__faction_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"faction_id","in":"path","required":true,"schema":{"type":"string","title":"Faction Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return description with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return description with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["factions"],"summary":"Patch Faction","description":"Partially update a faction.","operationId":"patch_faction_v1_factions__faction_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"faction_id","in":"path","required":true,"schema":{"type":"string","title":"Faction Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FactionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["factions"],"summary":"Delete Faction","operationId":"delete_faction_v1_factions__faction_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"faction_id","in":"path","required":true,"schema":{"type":"string","title":"Faction Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/factions/links/maintenance":{"post":{"tags":["factions"],"summary":"Trigger Faction Links Maintenance","operationId":"trigger_faction_links_maintenance_v1_factions_links_maintenance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LinkMaintenanceRequest"},{"$ref":"#/components/schemas/LinkMaintenanceUpdateRequest"}],"title":"Maintenance"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkMaintenanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/locations":{"get":{"tags":["locations"],"summary":"List Locations","operationId":"list_locations_v1_locations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter locations","title":"Campaign Id"},"description":"Campaign ID to filter locations"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search locations by name","title":"Search"},"description":"Search locations by name"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return descriptions with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return descriptions with [[wikilinks]] intact"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["locations"],"summary":"Create Location","operationId":"create_location_v1_locations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/locations/{location_id}":{"get":{"tags":["locations"],"summary":"Get Location","operationId":"get_location_v1_locations__location_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return description with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return description with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["locations"],"summary":"Patch Location","description":"Partially update a location.","operationId":"patch_location_v1_locations__location_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["locations"],"summary":"Delete Location","operationId":"delete_location_v1_locations__location_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/locations/links/maintenance":{"post":{"tags":["locations"],"summary":"Trigger Location Links Maintenance","operationId":"trigger_location_links_maintenance_v1_locations_links_maintenance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LinkMaintenanceRequest"},{"$ref":"#/components/schemas/LinkMaintenanceUpdateRequest"}],"title":"Maintenance"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkMaintenanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/moments":{"get":{"tags":["moments"],"summary":"List Moments","operationId":"list_moments_v1_moments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Campaign ID to filter moments","title":"Campaign Id"},"description":"Campaign ID to filter moments"},{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Session ID to filter moments","title":"Session Id"},"description":"Session ID to filter moments"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return content with [[wikilinks]] intact in detail endpoint","default":false,"title":"With Links"},"description":"Return content with [[wikilinks]] intact in detail endpoint"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["moments"],"summary":"Create Moment","operationId":"create_moment_v1_moments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MomentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MomentRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/moments/{moment_id}":{"get":{"tags":["moments"],"summary":"Get Moment","operationId":"get_moment_v1_moments__moment_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"moment_id","in":"path","required":true,"schema":{"type":"string","title":"Moment Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return content with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return content with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MomentRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["moments"],"summary":"Patch Moment","operationId":"patch_moment_v1_moments__moment_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"moment_id","in":"path","required":true,"schema":{"type":"string","title":"Moment Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MomentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MomentRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["moments"],"summary":"Delete Moment","operationId":"delete_moment_v1_moments__moment_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"moment_id","in":"path","required":true,"schema":{"type":"string","title":"Moment Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/moments/links/maintenance":{"post":{"tags":["moments"],"summary":"Trigger Moment Links Maintenance","operationId":"trigger_moment_links_maintenance_v1_moments_links_maintenance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LinkMaintenanceRequest"},{"$ref":"#/components/schemas/LinkMaintenanceUpdateRequest"}],"title":"Maintenance"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkMaintenanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/beats":{"get":{"tags":["beats"],"summary":"List Beats","operationId":"list_beats_v1_beats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter beats","title":"Campaign Id"},"description":"Campaign ID to filter beats"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return descriptions with [[wikilinks]] intact (BeatSummary has no description)","default":false,"title":"With Links"},"description":"Return descriptions with [[wikilinks]] intact (BeatSummary has no description)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["beats"],"summary":"Create Beat","operationId":"create_beat_v1_beats_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeatCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeatRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/beats/{beat_id}":{"get":{"tags":["beats"],"summary":"Get Beat","operationId":"get_beat_v1_beats__beat_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"beat_id","in":"path","required":true,"schema":{"type":"string","title":"Beat Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return description with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return description with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeatRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["beats"],"summary":"Patch Beat","operationId":"patch_beat_v1_beats__beat_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"beat_id","in":"path","required":true,"schema":{"type":"string","title":"Beat Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeatUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BeatRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["beats"],"summary":"Delete Beat","operationId":"delete_beat_v1_beats__beat_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"beat_id","in":"path","required":true,"schema":{"type":"string","title":"Beat Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/items":{"get":{"tags":["items"],"summary":"List Items","operationId":"list_items_v1_items_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter items","title":"Campaign Id"},"description":"Campaign ID to filter items"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search items by name","title":"Search"},"description":"Search items by name"},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return descriptions with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return descriptions with [[wikilinks]] intact"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["items"],"summary":"Create Item","operationId":"create_item_v1_items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/items/{item_id}":{"get":{"tags":["items"],"summary":"Get Item","operationId":"get_item_v1_items__item_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}},{"name":"with_links","in":"query","required":false,"schema":{"type":"boolean","description":"Return description with [[wikilinks]] intact","default":false,"title":"With Links"},"description":"Return description with [[wikilinks]] intact"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["items"],"summary":"Patch Item","description":"Partially update an item.","operationId":"patch_item_v1_items__item_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["items"],"summary":"Delete Item","operationId":"delete_item_v1_items__item_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/items/links/maintenance":{"post":{"tags":["items"],"summary":"Trigger Item Links Maintenance","operationId":"trigger_item_links_maintenance_v1_items_links_maintenance_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LinkMaintenanceRequest"},{"$ref":"#/components/schemas/LinkMaintenanceUpdateRequest"}],"title":"Maintenance"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkMaintenanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/quests":{"get":{"tags":["quests"],"summary":"List Quest Entries","operationId":"list_quest_entries_v1_quests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"Campaign ID to filter quests","title":"Campaign Id"},"description":"Campaign ID to filter quests"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search quests by name, giver, or narrative fields","title":"Search"},"description":"Search quests by name, giver, or narrative fields"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by quest status","title":"Status"},"description":"Filter by quest status"},{"name":"quest_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by quest category","title":"Quest Category"},"description":"Filter by quest category"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["quests"],"summary":"Create Quest Entry","operationId":"create_quest_entry_v1_quests_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/quests/{quest_id}":{"get":{"tags":["quests"],"summary":"Get Quest Entry","operationId":"get_quest_entry_v1_quests__quest_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"quest_id","in":"path","required":true,"schema":{"type":"string","title":"Quest Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["quests"],"summary":"Patch Quest Entry","operationId":"patch_quest_entry_v1_quests__quest_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"quest_id","in":"path","required":true,"schema":{"type":"string","title":"Quest Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["quests"],"summary":"Delete Quest Entry","operationId":"delete_quest_entry_v1_quests__quest_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"quest_id","in":"path","required":true,"schema":{"type":"string","title":"Quest Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/journals":{"get":{"tags":["journals"],"summary":"List Journal Entries","operationId":"list_journal_entries_v1_journals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"World/Campaign ID to list journal entries","title":"Campaign Id"},"description":"World/Campaign ID to list journal entries"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":20,"title":"Size"},"description":"Page size"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["journals"],"summary":"Create Journal Entry","operationId":"create_journal_entry_v1_journals_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalEntryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Journal Entry V1 Journals Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["journals"],"summary":"Update Journal Entry","operationId":"update_journal_entry_v1_journals_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalEntryPut"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Journal Entry V1 Journals Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["journals"],"summary":"Delete Journal Entry","operationId":"delete_journal_entry_v1_journals_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Journal entry id","title":"Id"},"description":"Journal entry id"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/journals/{entry_id}":{"get":{"tags":["journals"],"summary":"Get Journal Entry","operationId":"get_journal_entry_v1_journals__entry_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/journal-folders":{"get":{"tags":["journal-folders"],"summary":"List Journal Folders","operationId":"list_journal_folders_v1_journal_folders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"query","required":true,"schema":{"type":"string","description":"World/Campaign ID to list journal folders","title":"Campaign Id"},"description":"World/Campaign ID to list journal folders"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["journal-folders"],"summary":"Create Journal Folder","operationId":"create_journal_folder_v1_journal_folders_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalFolderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Journal Folder V1 Journal Folders Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["journal-folders"],"summary":"Update Journal Folder","operationId":"update_journal_folder_v1_journal_folders_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalFolderPut"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Journal Folder V1 Journal Folders Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["journal-folders"],"summary":"Delete Journal Folder","operationId":"delete_journal_folder_v1_journal_folders_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Journal folder id","title":"Id"},"description":"Journal folder id"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/journal-folders/{folder_id}":{"get":{"tags":["journal-folders"],"summary":"Get Journal Folder","operationId":"get_journal_folder_v1_journal_folders__folder_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/setup":{"get":{"tags":["recordings"],"summary":"Get Recording Setup","operationId":"get_recording_setup_v1_campaigns__campaign_id__recordings_setup_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingSetupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/setup/cast-members":{"post":{"tags":["recordings"],"summary":"Create Recording Cast Member","operationId":"create_recording_cast_member_v1_campaigns__campaign_id__recordings_setup_cast_members_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingSetupCastMemberRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingSetupCastMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/setup/voice-samples/init":{"post":{"tags":["recordings"],"summary":"Init Voice Sample Upload","operationId":"init_voice_sample_upload_v1_campaigns__campaign_id__recordings_setup_voice_samples_init_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingVoiceSampleInitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingVoiceSampleInitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/setup/voice-samples/upload":{"post":{"tags":["recordings"],"summary":"Upload Voice Sample","operationId":"upload_voice_sample_v1_campaigns__campaign_id__recordings_setup_voice_samples_upload_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_voice_sample_v1_campaigns__campaign_id__recordings_setup_voice_samples_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingVoiceSampleCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/setup/voice-samples/complete":{"post":{"tags":["recordings"],"summary":"Complete Voice Sample Upload","operationId":"complete_voice_sample_upload_v1_campaigns__campaign_id__recordings_setup_voice_samples_complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingVoiceSampleCompleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingVoiceSampleCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/init":{"post":{"tags":["recordings"],"summary":"Init Recording Upload","operationId":"init_recording_upload_v1_campaigns__campaign_id__recordings_init_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingInitRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingInitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/{session_id}/parts":{"post":{"tags":["recordings"],"summary":"Get Recording Part Urls","operationId":"get_recording_part_urls_v1_campaigns__campaign_id__recordings__session_id__parts_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingPartUrlRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingPartUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/{session_id}/complete":{"post":{"tags":["recordings"],"summary":"Complete Recording Upload","operationId":"complete_recording_upload_v1_campaigns__campaign_id__recordings__session_id__complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingCompleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingCompleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/{session_id}/status":{"get":{"tags":["recordings"],"summary":"Get Recording Status","operationId":"get_recording_status_v1_campaigns__campaign_id__recordings__session_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordingStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/campaigns/{campaign_id}/recordings/{session_id}":{"delete":{"tags":["recordings"],"summary":"Delete Recording Upload","operationId":"delete_recording_upload_v1_campaigns__campaign_id__recordings__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ask":{"post":{"tags":["ask"],"summary":"Ask Handler","operationId":"ask_handler_v1_ask_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BeatCreate":{"properties":{"label":{"type":"string","maxLength":255,"minLength":1,"title":"Label"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"type":{"$ref":"#/components/schemas/BeatType","default":"major"},"index":{"type":"integer","title":"Index","default":0},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"game_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Game Session Id"},"game_session_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Game Session Ids"}},"type":"object","required":["label","campaign_id"],"title":"BeatCreate"},"BeatRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"label":{"type":"string","maxLength":255,"minLength":1,"title":"Label"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"type":{"$ref":"#/components/schemas/BeatType","default":"major"},"index":{"type":"integer","title":"Index","default":0},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"game_session_ids":{"items":{"type":"string"},"type":"array","title":"Game Session Ids"},"game_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Game Session Id"}},"type":"object","required":["created_at","id","label","campaign_id"],"title":"BeatRead"},"BeatSummary":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"type":{"$ref":"#/components/schemas/BeatType"},"campaign_id":{"type":"string","title":"Campaign Id"},"index":{"type":"integer","title":"Index"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"game_session_ids":{"items":{"type":"string"},"type":"array","title":"Game Session Ids"},"game_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Game Session Id"}},"type":"object","required":["id","label","type","campaign_id","index"],"title":"BeatSummary"},"BeatType":{"type":"string","enum":["major","minor","step"],"title":"BeatType"},"BeatUpdate":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Label"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"type":{"anyOf":[{"$ref":"#/components/schemas/BeatType"},{"type":"null"}]},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"game_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Game Session Id"},"game_session_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Game Session Ids"}},"type":"object","title":"BeatUpdate"},"Body_upload_voice_sample_v1_campaigns__campaign_id__recordings_setup_voice_samples_upload_post":{"properties":{"speaker_id":{"type":"string","title":"Speaker Id"},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["speaker_id","file"],"title":"Body_upload_voice_sample_v1_campaigns__campaign_id__recordings_setup_voice_samples_upload_post"},"CastAnalysisRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"session_id":{"type":"string","title":"Session Id"},"analysis":{"additionalProperties":true,"type":"object","title":"Analysis"}},"type":"object","required":["created_at","id","session_id","analysis"],"title":"CastAnalysisRead"},"CharacterCreate":{"properties":{"character_name":{"type":"string","maxLength":255,"minLength":1,"title":"Character Name"},"character_alias":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Character Alias"},"character_aliases":{"items":{"type":"string"},"type":"array","title":"Character Aliases"},"player_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Name"},"player_handle":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Handle"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"backstory":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Backstory"},"type":{"type":"string","maxLength":50,"title":"Type","default":"PC"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"campaign_id":{"type":"string","title":"Campaign Id"},"speaker_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"}},"additionalProperties":false,"type":"object","required":["character_name","campaign_id"],"title":"CharacterCreate","description":"Schema for creating a new character"},"CharacterPlayer":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"roles":{"items":{"type":"string"},"type":"array","title":"Roles"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["id","created_at","campaign_id"],"title":"CharacterPlayer"},"CharacterRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"character_name":{"type":"string","maxLength":255,"minLength":1,"title":"Character Name"},"character_alias":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Character Alias"},"character_aliases":{"items":{"type":"string"},"type":"array","title":"Character Aliases"},"player_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Name"},"player_handle":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Handle"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"backstory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Backstory"},"type":{"type":"string","maxLength":50,"title":"Type","default":"PC"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"campaign_id":{"type":"string","title":"Campaign Id"},"player":{"anyOf":[{"$ref":"#/components/schemas/CharacterPlayer"},{"type":"null"}]},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"merge":{"type":"boolean","title":"Merge"}},"type":"object","required":["created_at","id","character_name","campaign_id","merge"],"title":"CharacterRead","description":"Schema for reading character data"},"CharacterUpdate":{"properties":{"character_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Character Name"},"character_alias":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Character Alias"},"character_aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Character Aliases"},"player_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Name"},"player_handle":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Player Handle"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"backstory":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Backstory"},"type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Type"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"speaker_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Id"}},"additionalProperties":false,"type":"object","title":"CharacterUpdate","description":"Schema for updating a character"},"CompletedRecordingPart":{"properties":{"part_number":{"type":"integer","minimum":1.0,"title":"Part Number"},"etag":{"type":"string","minLength":1,"title":"Etag"}},"type":"object","required":["part_number","etag"],"title":"CompletedRecordingPart"},"FactionCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["name","campaign_id"],"title":"FactionCreate"},"FactionRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"campaign_id":{"type":"string","title":"Campaign Id"},"merge":{"type":"boolean","title":"Merge","default":false}},"type":"object","required":["created_at","id","name","campaign_id"],"title":"FactionRead"},"FactionUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"}},"type":"object","title":"FactionUpdate"},"GameSessionDetail":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"title":{"type":"string","maxLength":255,"title":"Title","default":"_new_session_"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"type":{"$ref":"#/components/schemas/GameSessionType","default":"other"},"public":{"type":"boolean","title":"Public","default":false},"campaign_id":{"type":"string","title":"Campaign Id"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"session_date":{"type":"string","format":"date-time","title":"Session Date"},"pbp_start_msg_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pbp Start Msg Url"},"pbp_end_msg_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pbp End Msg Url"},"beats":{"anyOf":[{"items":{"$ref":"#/components/schemas/BeatSummary"},"type":"array"},{"type":"null"}],"title":"Beats"},"moments":{"anyOf":[{"items":{"$ref":"#/components/schemas/MomentSummary"},"type":"array"},{"type":"null"}],"title":"Moments"}},"type":"object","required":["created_at","id","campaign_id","session_date"],"title":"GameSessionDetail","description":"Detailed read schema with optional related collections"},"GameSessionPatch":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Title"},"session_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Session Date"},"summary":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Summary"}},"type":"object","title":"GameSessionPatch","description":"Schema for PATCH updates to a game session (limited fields)"},"GameSessionRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"title":{"type":"string","maxLength":255,"title":"Title","default":"_new_session_"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"type":{"$ref":"#/components/schemas/GameSessionType","default":"other"},"public":{"type":"boolean","title":"Public","default":false},"campaign_id":{"type":"string","title":"Campaign Id"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"session_date":{"type":"string","format":"date-time","title":"Session Date"},"pbp_start_msg_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pbp Start Msg Url"},"pbp_end_msg_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pbp End Msg Url"}},"type":"object","required":["created_at","id","campaign_id","session_date"],"title":"GameSessionRead","description":"Schema for reading game session data"},"GameSessionType":{"type":"string","enum":["audioUpload","playByPost","discordVoice","txtUpload","rawNotes","other"],"title":"GameSessionType"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HandoutCharacterSpotlightRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"bullets":{"items":{"type":"string"},"type":"array","title":"Bullets"}},"type":"object","required":["name","description"],"title":"HandoutCharacterSpotlightRead"},"HandoutEncounterRead":{"properties":{"title":{"type":"string","title":"Title"},"bullets":{"items":{"type":"string"},"type":"array","title":"Bullets"}},"type":"object","required":["title"],"title":"HandoutEncounterRead"},"HandoutEntitySpotlightRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"type":"object","required":["name","description"],"title":"HandoutEntitySpotlightRead"},"HandoutItemRead":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"}},"type":"object","required":["name","description"],"title":"HandoutItemRead"},"HandoutMomentRead":{"properties":{"label":{"type":"string","title":"Label"},"content":{"type":"string","title":"Content"}},"type":"object","required":["label","content"],"title":"HandoutMomentRead"},"HandoutNextSteps":{"properties":{"summary":{"type":"string","title":"Summary","default":""}},"type":"object","title":"HandoutNextSteps"},"HandoutPartyStatus":{"properties":{"summary":{"type":"string","title":"Summary","default":""},"bullets":{"items":{"type":"string"},"type":"array","title":"Bullets"}},"type":"object","title":"HandoutPartyStatus"},"HandoutPartyStatusAndNextSteps":{"properties":{"partyStatus":{"$ref":"#/components/schemas/HandoutPartyStatus"},"nextSteps":{"$ref":"#/components/schemas/HandoutNextSteps"}},"type":"object","title":"HandoutPartyStatusAndNextSteps"},"HandoutValuableInfoRead":{"properties":{"info":{"type":"string","title":"Info"}},"type":"object","required":["info"],"title":"HandoutValuableInfoRead"},"ItemCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["name","campaign_id"],"title":"ItemCreate"},"ItemRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"campaign_id":{"type":"string","title":"Campaign Id"},"merge":{"type":"boolean","title":"Merge","default":false}},"type":"object","required":["created_at","id","name","campaign_id"],"title":"ItemRead"},"ItemUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"}},"type":"object","title":"ItemUpdate"},"JournalEntryCreate":{"properties":{"worldId":{"type":"string","title":"Worldid"},"title":{"type":"string","maxLength":255,"minLength":1,"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"contentRich":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contentrich"},"contentMetadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contentmetadata"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"coverImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverimage"},"isPinned":{"type":"boolean","title":"Ispinned","default":false},"isPublic":{"type":"boolean","title":"Ispublic","default":false},"status":{"anyOf":[{"type":"string","enum":["draft","published","archived"]},{"type":"null"}],"title":"Status"},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat"},"archivedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archivedat"},"folderId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folderid"}},"type":"object","required":["worldId","title"],"title":"JournalEntryCreate"},"JournalEntryPut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"contentRich":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contentrich"},"contentMetadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contentmetadata"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"coverImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverimage"},"isPinned":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ispinned"},"isPublic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ispublic"},"status":{"anyOf":[{"type":"string","enum":["draft","published","archived"]},{"type":"null"}],"title":"Status"},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat"},"archivedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archivedat"},"folderId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folderid"},"permissions":{"anyOf":[{"$ref":"#/components/schemas/JournalPermissionUpdate"},{"type":"null"}]},"authorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorid"}},"type":"object","required":["id"],"title":"JournalEntryPut"},"JournalFolderCreate":{"properties":{"worldId":{"type":"string","title":"Worldid"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"path":{"type":"string","maxLength":1024,"minLength":1,"title":"Path"},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position","default":0},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["worldId","name","path"],"title":"JournalFolderCreate"},"JournalFolderPut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"path":{"anyOf":[{"type":"string","maxLength":1024,"minLength":1},{"type":"null"}],"title":"Path"},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Position"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id"],"title":"JournalFolderPut"},"JournalPermissionAdd":{"properties":{"userId":{"type":"string","title":"Userid"},"level":{"type":"string","enum":["view","comment","edit","manage"],"title":"Level","default":"view"}},"type":"object","required":["userId"],"title":"JournalPermissionAdd"},"JournalPermissionRemove":{"properties":{"userId":{"type":"string","title":"Userid"}},"type":"object","required":["userId"],"title":"JournalPermissionRemove"},"JournalPermissionUpdate":{"properties":{"add":{"items":{"$ref":"#/components/schemas/JournalPermissionAdd"},"type":"array","title":"Add"},"remove":{"items":{"$ref":"#/components/schemas/JournalPermissionRemove"},"type":"array","title":"Remove"}},"type":"object","title":"JournalPermissionUpdate"},"LinkCreate":{"properties":{"from_id":{"type":"string","minLength":1,"title":"From Id"},"from_type":{"type":"string","minLength":1,"title":"From Type"},"to_id":{"type":"string","minLength":1,"title":"To Id"},"to_type":{"type":"string","minLength":1,"title":"To Type"},"alias":{"type":"string","minLength":1,"title":"Alias"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["from_id","from_type","to_id","to_type","alias","campaign_id"],"title":"LinkCreate"},"LinkMaintenanceRequest":{"properties":{"operation":{"type":"string","enum":["add","remove"],"title":"Operation"},"worldId":{"type":"string","title":"Worldid"},"targetId":{"type":"string","title":"Targetid"},"targetType":{"type":"string","enum":["Character","Faction","Location","Item","Moment"],"title":"Targettype"},"alias":{"type":"string","maxLength":255,"minLength":1,"title":"Alias"}},"type":"object","required":["operation","worldId","targetId","targetType","alias"],"title":"LinkMaintenanceRequest","description":"Schema for triggering campaign-wide wikilink maintenance via webhook."},"LinkMaintenanceResult":{"properties":{"success":{"type":"boolean","title":"Success"},"taskId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Taskid"}},"type":"object","required":["success"],"title":"LinkMaintenanceResult"},"LinkMaintenanceUpdateRequest":{"properties":{"operation":{"type":"string","const":"update","title":"Operation"},"worldId":{"type":"string","title":"Worldid"},"targetId":{"type":"string","title":"Targetid"},"newTargetId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newtargetid"},"newAlias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newalias"}},"type":"object","required":["operation","worldId","targetId"],"title":"LinkMaintenanceUpdateRequest","description":"Schema for updating existing links across a campaign."},"LinkRead":{"properties":{"id":{"type":"string","title":"Id"},"from_id":{"type":"string","minLength":1,"title":"From Id"},"from_type":{"type":"string","minLength":1,"title":"From Type"},"to_id":{"type":"string","minLength":1,"title":"To Id"},"to_type":{"type":"string","minLength":1,"title":"To Type"},"alias":{"type":"string","minLength":1,"title":"Alias"},"campaign_id":{"type":"string","title":"Campaign Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","from_id","from_type","to_id","to_type","alias","campaign_id","created_at"],"title":"LinkRead"},"LinkUpdate":{"properties":{"alias":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Alias"}},"type":"object","title":"LinkUpdate"},"LocationCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["name","campaign_id"],"title":"LocationCreate"},"LocationRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"merge":{"type":"boolean","title":"Merge","default":false}},"type":"object","required":["created_at","id","name","campaign_id"],"title":"LocationRead"},"LocationUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Type"},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tcg_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tcg Image"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}},"type":"object","title":"LocationUpdate"},"MomentCreate":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Label"},"content":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Content"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"pending":{"type":"boolean","title":"Pending","default":false},"approved":{"type":"boolean","title":"Approved","default":false},"discovered":{"type":"boolean","title":"Discovered","default":false},"campaign_id":{"type":"string","title":"Campaign Id"},"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["campaign_id","session_id"],"title":"MomentCreate"},"MomentRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"label":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Label"},"content":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Content"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"campaign_id":{"type":"string","title":"Campaign Id"},"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["created_at","id","campaign_id","session_id"],"title":"MomentRead"},"MomentSummary":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"campaign_id":{"type":"string","title":"Campaign Id"},"session_id":{"type":"string","title":"Session Id"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"}},"type":"object","required":["created_at","id","campaign_id","session_id"],"title":"MomentSummary"},"MomentUpdate":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Label"},"content":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}],"title":"Content"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pending"},"approved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Approved"},"discovered":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Discovered"}},"type":"object","title":"MomentUpdate"},"ObjectiveStatusValue":{"type":"string","enum":["pending","in-progress","completed","failed","blocked"],"title":"ObjectiveStatusValue"},"PaginatedResponse":{"properties":{"data":{"items":{},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"}},"type":"object","required":["data","total","page","size","pages"],"title":"PaginatedResponse"},"QuestCategoryValue":{"type":"string","enum":["main","side","faction","personal","n/a"],"title":"QuestCategoryValue"},"QuestCreate":{"properties":{"campaign_id":{"type":"string","title":"Campaign Id"},"quest_name":{"type":"string","maxLength":255,"minLength":1,"title":"Quest Name"},"quest_giver":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Quest Giver"},"quest_category":{"$ref":"#/components/schemas/QuestCategoryValue","default":"n/a"},"status":{"$ref":"#/components/schemas/QuestStatusValue","default":"planned"},"success_definition":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Success Definition"},"failure_conditions":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Failure Conditions"},"next_action":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Next Action"},"resolution":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Resolution"},"objectives":{"items":{"$ref":"#/components/schemas/QuestObjectiveInput"},"type":"array","title":"Objectives"},"progress_log":{"items":{"type":"string"},"type":"array","title":"Progress Log"},"related_characters":{"items":{"type":"string"},"type":"array","title":"Related Characters"},"related_factions":{"items":{"type":"string"},"type":"array","title":"Related Factions"},"related_locations":{"items":{"type":"string"},"type":"array","title":"Related Locations"},"related_items":{"items":{"type":"string"},"type":"array","title":"Related Items"},"related_entity_refs":{"items":{"$ref":"#/components/schemas/QuestRelatedEntityRefInput"},"type":"array","title":"Related Entity Refs"}},"additionalProperties":false,"type":"object","required":["campaign_id","quest_name"],"title":"QuestCreate"},"QuestEntityTypeValue":{"type":"string","enum":["character","faction","location","item"],"title":"QuestEntityTypeValue"},"QuestObjectiveInput":{"properties":{"text":{"type":"string","maxLength":1000,"minLength":1,"title":"Text"},"status":{"$ref":"#/components/schemas/ObjectiveStatusValue","default":"pending"}},"type":"object","required":["text"],"title":"QuestObjectiveInput"},"QuestObjectiveRead":{"properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","maxLength":1000,"minLength":1,"title":"Text"},"status":{"$ref":"#/components/schemas/ObjectiveStatusValue","default":"pending"},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","text","order"],"title":"QuestObjectiveRead"},"QuestProgressEntryRead":{"properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"order":{"type":"integer","title":"Order"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"session_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Number"},"session_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Title"},"session_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Session Date"}},"type":"object","required":["id","text","order"],"title":"QuestProgressEntryRead"},"QuestRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"order_index":{"type":"integer","title":"Order Index"},"quest_name":{"type":"string","title":"Quest Name"},"quest_giver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quest Giver"},"quest_giver_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quest Giver Id"},"quest_category":{"$ref":"#/components/schemas/QuestCategoryValue"},"status":{"$ref":"#/components/schemas/QuestStatusValue"},"success_definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Definition"},"failure_conditions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Conditions"},"next_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Action"},"resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution"},"objectives":{"items":{"$ref":"#/components/schemas/QuestObjectiveRead"},"type":"array","title":"Objectives"},"progress_log":{"items":{"type":"string"},"type":"array","title":"Progress Log"},"progress_log_entries":{"items":{"$ref":"#/components/schemas/QuestProgressEntryRead"},"type":"array","title":"Progress Log Entries"},"related_characters":{"items":{"type":"string"},"type":"array","title":"Related Characters"},"related_factions":{"items":{"type":"string"},"type":"array","title":"Related Factions"},"related_locations":{"items":{"type":"string"},"type":"array","title":"Related Locations"},"related_items":{"items":{"type":"string"},"type":"array","title":"Related Items"},"related_entity_refs":{"items":{"$ref":"#/components/schemas/QuestRelatedEntityRefRead"},"type":"array","title":"Related Entity Refs"},"first_session":{"anyOf":[{"$ref":"#/components/schemas/QuestSessionRef"},{"type":"null"}]},"last_session":{"anyOf":[{"$ref":"#/components/schemas/QuestSessionRef"},{"type":"null"}]}},"type":"object","required":["created_at","id","campaign_id","order_index","quest_name","quest_category","status"],"title":"QuestRead"},"QuestRelatedEntityRefInput":{"properties":{"entity_type":{"$ref":"#/components/schemas/QuestEntityTypeValue"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"},"entity_name_snapshot":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Entity Name Snapshot"},"label":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Label"}},"type":"object","required":["entity_type"],"title":"QuestRelatedEntityRefInput"},"QuestRelatedEntityRefRead":{"properties":{"id":{"type":"string","title":"Id"},"entity_type":{"$ref":"#/components/schemas/QuestEntityTypeValue"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id"},"entity_name_snapshot":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Entity Name Snapshot"},"label":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Label"},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","entity_type","order"],"title":"QuestRelatedEntityRefRead"},"QuestSessionRef":{"properties":{"id":{"type":"string","title":"Id"},"number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"session_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Session Date"}},"type":"object","required":["id"],"title":"QuestSessionRef"},"QuestStatusValue":{"type":"string","enum":["planned","in-progress","blocked","failed","done","n/a"],"title":"QuestStatusValue"},"QuestUpdate":{"properties":{"quest_name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Quest Name"},"quest_giver":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Quest Giver"},"quest_category":{"anyOf":[{"$ref":"#/components/schemas/QuestCategoryValue"},{"type":"null"}]},"status":{"anyOf":[{"$ref":"#/components/schemas/QuestStatusValue"},{"type":"null"}]},"success_definition":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Success Definition"},"failure_conditions":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Failure Conditions"},"next_action":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Next Action"},"resolution":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Resolution"},"objectives":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuestObjectiveInput"},"type":"array"},{"type":"null"}],"title":"Objectives"},"progress_log":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Progress Log"},"related_characters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Characters"},"related_factions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Factions"},"related_locations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Locations"},"related_items":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Items"},"related_entity_refs":{"anyOf":[{"items":{"$ref":"#/components/schemas/QuestRelatedEntityRefInput"},"type":"array"},{"type":"null"}],"title":"Related Entity Refs"}},"additionalProperties":false,"type":"object","title":"QuestUpdate"},"RecordingCompleteRequest":{"properties":{"completed_parts":{"items":{"$ref":"#/components/schemas/CompletedRecordingPart"},"type":"array","minItems":1,"title":"Completed Parts"}},"type":"object","required":["completed_parts"],"title":"RecordingCompleteRequest"},"RecordingCompleteResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"upload_status":{"type":"string","title":"Upload Status"},"processing_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Stage"},"deepgram_started":{"type":"boolean","title":"Deepgram Started"},"deepgram_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deepgram Request Id"}},"type":"object","required":["session_id","upload_status","deepgram_started"],"title":"RecordingCompleteResponse"},"RecordingInitRequest":{"properties":{"file_name":{"type":"string","minLength":1,"title":"File Name"},"file_size_bytes":{"type":"integer","exclusiveMinimum":0.0,"title":"File Size Bytes"},"duration_seconds":{"type":"integer","exclusiveMinimum":0.0,"title":"Duration Seconds"},"content_type":{"type":"string","minLength":1,"title":"Content Type"},"session_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Title"},"session_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Session Date"},"speaker_ids":{"items":{"type":"string"},"type":"array","title":"Speaker Ids"},"credit_type":{"anyOf":[{"type":"string","enum":["monthly","extra"]},{"type":"null"}],"title":"Credit Type"}},"type":"object","required":["file_name","file_size_bytes","duration_seconds","content_type"],"title":"RecordingInitRequest"},"RecordingInitResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"object_key":{"type":"string","title":"Object Key"},"r2_upload_id":{"type":"string","title":"R2 Upload Id"},"part_size_bytes":{"type":"integer","title":"Part Size Bytes"},"total_parts":{"type":"integer","title":"Total Parts"},"part_urls":{"items":{"$ref":"#/components/schemas/RecordingPartUrl"},"type":"array","title":"Part Urls"}},"type":"object","required":["session_id","object_key","r2_upload_id","part_size_bytes","total_parts","part_urls"],"title":"RecordingInitResponse"},"RecordingPartUrl":{"properties":{"part_number":{"type":"integer","title":"Part Number"},"url":{"type":"string","title":"Url"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"}},"type":"object","required":["part_number","url","expires_in_seconds"],"title":"RecordingPartUrl"},"RecordingPartUrlRequest":{"properties":{"part_numbers":{"items":{"type":"integer"},"type":"array","minItems":1,"title":"Part Numbers"}},"type":"object","required":["part_numbers"],"title":"RecordingPartUrlRequest"},"RecordingPartUrlResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"part_urls":{"items":{"$ref":"#/components/schemas/RecordingPartUrl"},"type":"array","title":"Part Urls"}},"type":"object","required":["session_id","part_urls"],"title":"RecordingPartUrlResponse"},"RecordingSetupCastMemberRequest":{"properties":{"player_name":{"type":"string","minLength":1,"title":"Player Name"},"role":{"type":"string","enum":["Player","NPC","GM"],"title":"Role"},"character_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Character Id"},"new_character_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Character Name"}},"type":"object","required":["player_name","role"],"title":"RecordingSetupCastMemberRequest"},"RecordingSetupCastMemberResponse":{"properties":{"speaker":{"$ref":"#/components/schemas/RecordingSetupSpeaker"}},"type":"object","required":["speaker"],"title":"RecordingSetupCastMemberResponse"},"RecordingSetupCharacterOption":{"properties":{"id":{"type":"string","title":"Id"},"character_name":{"type":"string","title":"Character Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["id","character_name","type"],"title":"RecordingSetupCharacterOption"},"RecordingSetupResponse":{"properties":{"speakers":{"items":{"$ref":"#/components/schemas/RecordingSetupSpeaker"},"type":"array","title":"Speakers"},"available_characters":{"items":{"$ref":"#/components/schemas/RecordingSetupCharacterOption"},"type":"array","title":"Available Characters"}},"type":"object","title":"RecordingSetupResponse"},"RecordingSetupSpeaker":{"properties":{"id":{"type":"string","title":"Id"},"display_name":{"type":"string","title":"Display Name"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"default":{"type":"boolean","title":"Default","default":true},"roles":{"items":{"type":"string"},"type":"array","title":"Roles"},"character_names":{"items":{"type":"string"},"type":"array","title":"Character Names"},"has_voice_sample":{"type":"boolean","title":"Has Voice Sample","default":false},"needs_voice_sample":{"type":"boolean","title":"Needs Voice Sample","default":true}},"type":"object","required":["id","display_name"],"title":"RecordingSetupSpeaker"},"RecordingStatusResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"upload_status":{"type":"string","title":"Upload Status"},"processing_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Stage"},"object_key":{"type":"string","title":"Object Key"},"file_name":{"type":"string","title":"File Name"},"content_type":{"type":"string","title":"Content Type"},"file_size_bytes":{"type":"integer","title":"File Size Bytes"},"duration_seconds":{"type":"integer","title":"Duration Seconds"},"total_parts":{"type":"integer","title":"Total Parts"},"uploaded_completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Uploaded Completed At"},"cleaned_up_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cleaned Up At"},"deepgram_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deepgram Request Id"}},"type":"object","required":["session_id","upload_status","object_key","file_name","content_type","file_size_bytes","duration_seconds","total_parts"],"title":"RecordingStatusResponse"},"RecordingVoiceSampleCompleteRequest":{"properties":{"speaker_id":{"type":"string","minLength":1,"title":"Speaker Id"},"object_key":{"type":"string","minLength":1,"title":"Object Key"}},"type":"object","required":["speaker_id","object_key"],"title":"RecordingVoiceSampleCompleteRequest"},"RecordingVoiceSampleCompleteResponse":{"properties":{"speaker":{"$ref":"#/components/schemas/RecordingSetupSpeaker"},"message":{"type":"string","title":"Message"}},"type":"object","required":["speaker","message"],"title":"RecordingVoiceSampleCompleteResponse"},"RecordingVoiceSampleInitRequest":{"properties":{"speaker_id":{"type":"string","minLength":1,"title":"Speaker Id"},"file_name":{"type":"string","minLength":1,"title":"File Name"},"content_type":{"type":"string","minLength":1,"title":"Content Type"}},"type":"object","required":["speaker_id","file_name","content_type"],"title":"RecordingVoiceSampleInitRequest"},"RecordingVoiceSampleInitResponse":{"properties":{"object_key":{"type":"string","title":"Object Key"},"upload_url":{"type":"string","title":"Upload Url"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds"}},"type":"object","required":["object_key","upload_url","expires_in_seconds"],"title":"RecordingVoiceSampleInitResponse"},"SessionHandoutRead":{"properties":{"summary":{"type":"string","title":"Summary","default":""},"sessionOutline":{"anyOf":[{"type":"string"},{"items":{},"type":"array"}],"title":"Sessionoutline","default":""},"encounters":{"items":{"$ref":"#/components/schemas/HandoutEncounterRead"},"type":"array","title":"Encounters"},"characterSpotlight":{"items":{"$ref":"#/components/schemas/HandoutCharacterSpotlightRead"},"type":"array","title":"Characterspotlight"},"otherEntitySpotlight":{"items":{"$ref":"#/components/schemas/HandoutEntitySpotlightRead"},"type":"array","title":"Otherentityspotlight"},"items":{"items":{"$ref":"#/components/schemas/HandoutItemRead"},"type":"array","title":"Items"},"valuableInformation":{"items":{"$ref":"#/components/schemas/HandoutValuableInfoRead"},"type":"array","title":"Valuableinformation"},"partyStatusAndNextSteps":{"$ref":"#/components/schemas/HandoutPartyStatusAndNextSteps"},"moments":{"items":{"$ref":"#/components/schemas/HandoutMomentRead"},"type":"array","title":"Moments"}},"type":"object","title":"SessionHandoutRead"},"SubscriptionStatus":{"type":"string","enum":["incomplete","active","past_due","canceled","incomplete_expired","trialing","unpaid","paused"],"title":"SubscriptionStatus"},"SubscriptionTier":{"type":"string","enum":["casual","seasoned","pro","legend","godmode","trial"],"title":"SubscriptionTier"},"TranscriptMetadata":{"properties":{"session_id":{"type":"string","title":"Session Id"},"session_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Type"},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"world_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"World Title"},"world_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"World Language"},"session_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Date"},"speakers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Speakers"},"speaker_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Speaker Count"},"source_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Type"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["session_id"],"title":"TranscriptMetadata"},"TranscriptRead":{"properties":{"version":{"type":"integer","title":"Version"},"created_at":{"type":"string","title":"Created At"},"metadata":{"$ref":"#/components/schemas/TranscriptMetadata"},"utterances":{"items":{"$ref":"#/components/schemas/TranscriptUtterance"},"type":"array","title":"Utterances"},"text":{"type":"string","title":"Text"},"stats":{"$ref":"#/components/schemas/TranscriptStats"}},"type":"object","required":["version","created_at","metadata","utterances","text","stats"],"title":"TranscriptRead"},"TranscriptStats":{"properties":{"char_count":{"type":"integer","title":"Char Count"},"tokens":{"type":"integer","title":"Tokens"},"utterance_count":{"type":"integer","title":"Utterance Count"}},"type":"object","required":["char_count","tokens","utterance_count"],"title":"TranscriptStats"},"TranscriptUtterance":{"properties":{"speaker_label":{"type":"string","title":"Speaker Label"},"transcript":{"type":"string","title":"Transcript"},"start":{"type":"number","title":"Start"},"end":{"type":"number","title":"End"},"said_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Said At"}},"type":"object","required":["speaker_label","transcript","start","end"],"title":"TranscriptUtterance"},"UserProfile":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"given_name":{"type":"string","title":"Given Name"},"family_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family Name"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"},"role":{"$ref":"#/components/schemas/UserRole"},"verified":{"type":"boolean","title":"Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"email":{"type":"string","title":"Email"},"subscription_tier":{"anyOf":[{"$ref":"#/components/schemas/SubscriptionTier"},{"type":"null"}]},"subscription_status":{"anyOf":[{"$ref":"#/components/schemas/SubscriptionStatus"},{"type":"null"}]},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"new_user":{"type":"boolean","title":"New User"},"campaign_slots_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Campaign Slots Remaining"},"any_sessions_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Any Sessions Remaining"},"text_sessions_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Text Sessions Remaining"},"billing_cycle_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Billing Cycle Start"},"billing_cycle_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Billing Cycle End"}},"type":"object","required":["id","name","given_name","role","verified","created_at","email","new_user"],"title":"UserProfile","description":"Extended user profile for authenticated users"},"UserRole":{"type":"string","enum":["user","player","admin"],"title":"UserRole"},"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"},"WorldCreate":{"properties":{"title":{"type":"string","maxLength":255,"minLength":1,"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"system":{"type":"string","maxLength":100,"title":"System","default":"D&D 5e"},"summary":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Summary"},"language":{"type":"string","maxLength":10,"title":"Language","default":"en"},"chat_tone":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Chat Tone"},"ai_image_gen":{"type":"boolean","title":"Ai Image Gen","default":true},"public":{"type":"boolean","title":"Public","default":false},"mature":{"type":"boolean","title":"Mature","default":false}},"type":"object","required":["title"],"title":"WorldCreate","description":"Schema for creating a new world"},"WorldRead":{"properties":{"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"system":{"type":"string","title":"System","default":"D&D 5e"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"language":{"type":"string","title":"Language","default":"en"},"public":{"type":"boolean","title":"Public","default":false},"mature":{"type":"boolean","title":"Mature","default":false},"owner_id":{"type":"string","title":"Owner Id"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"}},"type":"object","required":["created_at","id","title","owner_id"],"title":"WorldRead","description":"Schema for reading world data"},"WorldUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Description"},"system":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"System"},"summary":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Summary"},"language":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Language"},"chat_tone":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}],"title":"Chat Tone"},"ai_image_gen":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ai Image Gen"},"public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Public"},"mature":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mature"}},"type":"object","title":"WorldUpdate","description":"Schema for updating a world"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}