{"openapi":"3.1.0","info":{"title":"Pendragon Winter Phase Action","description":"Focused Custom GPT Action for Winter Phase, annual chronicles, character outcomes, squires, and manor economy. Historical records remain append-only.","version":"0.1.0"},"servers":[{"url":"https://winter-api.pendragon-chronicle.dwarvenbard.com","description":"Pendragon Winter Phase Action gateway"}],"paths":{"/api/v1/campaigns":{"get":{"tags":["campaigns"],"summary":"List Campaigns","operationId":"list_campaigns","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CampaignRead"},"title":"Response List Campaigns"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}":{"get":{"tags":["campaigns"],"summary":"Get Campaign","operationId":"get_campaign","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/sessions":{"get":{"tags":["campaigns"],"summary":"List Sessions","operationId":"list_sessions","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessionRead"},"title":"Response List Sessions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/events":{"get":{"tags":["timeline"],"summary":"List Events","operationId":"list_events","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventRead"},"title":"Response List Events"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["timeline"],"summary":"Create Event","operationId":"create_event","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-openai-isConsequential":false}},"/api/v1/campaigns/{campaign_id}/characters":{"get":{"tags":["characters"],"summary":"List Characters","operationId":"list_characters","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(player_knight|npc)$"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CharacterRead"},"title":"Response List Characters"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/characters/{character_id}":{"get":{"tags":["characters"],"summary":"Get Character","operationId":"get_character","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}}],"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"}}}}}}},"/api/v1/campaigns/{campaign_id}/characters/{character_id}/glory":{"get":{"tags":["characters"],"summary":"Glory Summary","operationId":"glory_summary","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}},{"name":"include_gm","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Gm"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlorySummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["characters"],"summary":"Add Glory","operationId":"add_glory","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GloryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GloryRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/characters/{character_id}/squire-services":{"get":{"tags":["characters"],"summary":"List Squire Services","operationId":"list_squire_services","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SquireServiceRead"},"title":"Response List Squire Services"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/squires":{"get":{"tags":["characters"],"summary":"List Squires","operationId":"list_squires","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SquireRead"},"title":"Response List Squires"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/squires/{squire_id}/states":{"get":{"tags":["characters"],"summary":"List Squire States","operationId":"list_squire_states","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"squire_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Squire Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SquireStateRead"},"title":"Response List Squire States"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors":{"get":{"tags":["locations"],"summary":"List Manors","operationId":"list_manors","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManorRead"},"title":"Response List Manors"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors/{manor_id}/tenures":{"post":{"tags":["locations"],"summary":"Add Tenure","operationId":"add_tenure","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorTenureCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorTenureRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["locations"],"summary":"List Tenures","operationId":"list_tenures","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManorTenureRead"},"title":"Response List Tenures"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors/{manor_id}/improvements":{"post":{"tags":["locations"],"summary":"Add Improvement","operationId":"add_improvement","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorImprovementCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorImprovementRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["locations"],"summary":"List Improvements","operationId":"list_improvements","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManorImprovementRead"},"title":"Response List Improvements"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors/{manor_id}/annual-resolutions":{"get":{"tags":["locations"],"summary":"List Annual Resolutions","operationId":"list_annual_resolutions","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ManorAnnualResolutionRead"},"title":"Response List Annual Resolutions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["locations"],"summary":"Create Annual Resolution","operationId":"create_annual_resolution","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorAnnualResolutionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManorAnnualResolutionRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors/{manor_id}/treasury":{"get":{"tags":["locations"],"summary":"List Treasury","operationId":"list_treasury","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TreasuryEntryRead"},"title":"Response List Treasury"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["locations"],"summary":"Add Treasury Entry","operationId":"add_treasury_entry","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuryEntryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuryEntryRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/manors/{manor_id}/household":{"post":{"tags":["locations"],"summary":"Add Household Employment","operationId":"add_household_employment","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HouseholdEmploymentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HouseholdEmploymentRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["locations"],"summary":"List Household Employment","operationId":"list_household_employment","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"manor_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Manor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HouseholdEmploymentRead"},"title":"Response List Household Employment"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/winter-phases":{"get":{"tags":["winter-phase"],"summary":"List Winter Phases","operationId":"list_winter_phases","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WinterPhaseRead"},"title":"Response List Winter Phases"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["winter-phase"],"summary":"Create Winter Phase","operationId":"create_winter_phase","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WinterPhaseCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WinterPhaseRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/years/{year}/chronicle":{"get":{"tags":["winter-phase"],"summary":"Get Annual Chronicle","operationId":"get_annual_chronicle","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnualChronicleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/years/{year}/chronicle/generate":{"post":{"tags":["winter-phase"],"summary":"Generate Annual Chronicle","operationId":"generate_annual_chronicle","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnualChronicleRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/winter-phases/{phase_id}/participants":{"get":{"tags":["winter-phase"],"summary":"List Winter Participants","operationId":"list_winter_participants","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"phase_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Phase Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WinterParticipantRead"},"title":"Response List Winter Participants"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/characters/{character_id}/history":{"get":{"tags":["winter-phase"],"summary":"List Character History","operationId":"list_character_history","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CharacterHistoryRead"},"title":"Response List Character History"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/campaigns/{campaign_id}/characters/{character_id}/wounds":{"get":{"tags":["winter-phase"],"summary":"List Character Wounds","operationId":"list_character_wounds","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"character_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Character Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CharacterWoundRead"},"title":"Response List Character Wounds"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnnualChronicleRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"winter_phase_id":{"type":"string","format":"uuid","title":"Winter Phase Id"},"in_game_year":{"type":"integer","title":"In Game Year"},"revision":{"type":"integer","title":"Revision"},"title":{"type":"string","title":"Title"},"opening":{"type":"string","title":"Opening"},"closing":{"type":"string","title":"Closing"},"status":{"type":"string","title":"Status"},"generator_version":{"type":"string","title":"Generator Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"source_event_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Source Event Ids"},"sections":{"items":{"$ref":"#/components/schemas/AnnualChronicleSectionRead"},"type":"array","title":"Sections"}},"type":"object","required":["id","campaign_id","winter_phase_id","in_game_year","revision","title","opening","closing","status","generator_version","created_at","source_event_ids","sections"],"title":"AnnualChronicleRead"},"AnnualChronicleSectionRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"position":{"type":"integer","title":"Position"},"heading":{"type":"string","title":"Heading"},"body":{"type":"string","title":"Body"},"source_event_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Source Event Ids"}},"type":"object","required":["id","character_id","position","heading","body","source_event_ids"],"title":"AnnualChronicleSectionRead"},"CampaignRead":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"slug":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"current_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Current Year","default":485},"ruleset_version":{"type":"string","title":"Ruleset Version","default":"Pendragon 6th Edition"},"timezone":{"type":"string","title":"Timezone","default":"UTC"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"id":{"type":"string","format":"uuid","title":"Id"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","slug","id","archived_at","created_at","updated_at"],"title":"CampaignRead"},"CharacterHistoryRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"source_key":{"type":"string","title":"Source Key"},"in_game_year":{"type":"integer","title":"In Game Year"},"title":{"type":"string","title":"Title"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"reported_glory":{"type":"integer","title":"Reported Glory"},"favour_value":{"type":"integer","title":"Favour Value"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","campaign_id","character_id","event_id","source_key","in_game_year","title","source","description","reported_glory","favour_value","created_at"],"title":"CharacterHistoryRead"},"CharacterRead":{"properties":{"kind":{"type":"string","enum":["player_knight","npc"],"title":"Kind"},"name":{"type":"string","maxLength":300,"minLength":1,"title":"Name"},"epithet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Epithet"},"player_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Player Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"culture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Culture"},"religion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Religion"},"social_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Social Class"},"birth_year":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"Birth Year"},"status":{"type":"string","enum":["alive","dead","missing","unknown"],"title":"Status","default":"alive"},"coat_of_arms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coat Of Arms"},"public_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Description"},"foundry_uuid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Foundry Uuid"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["kind","name","id","campaign_id","archived_at","created_at","updated_at"],"title":"CharacterRead"},"CharacterWoundRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"source_key":{"type":"string","title":"Source Key"},"effective_year":{"type":"integer","title":"Effective Year"},"sequence":{"type":"integer","title":"Sequence"},"damage":{"type":"integer","title":"Damage"},"treated":{"type":"boolean","title":"Treated"},"wound_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wound Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"}},"type":"object","required":["id","campaign_id","character_id","event_id","source_key","effective_year","sequence","damage","treated","wound_source","description","reason","recorded_at"],"title":"CharacterWoundRead"},"EventCreate":{"properties":{"session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Session Id"},"event_type":{"type":"string","maxLength":100,"minLength":1,"title":"Event Type"},"title":{"type":"string","maxLength":300,"minLength":1,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"in_game_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Game Date"},"sequence":{"type":"integer","minimum":0,"title":"Sequence","default":0},"visibility":{"type":"string","enum":["gm_only","players","public"],"title":"Visibility","default":"players"},"occurred_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Occurred At"},"supersedes_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Supersedes Event Id"},"metadata_":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["event_type","title","in_game_year"],"title":"EventCreate"},"EventRead":{"properties":{"session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Session Id"},"event_type":{"type":"string","maxLength":100,"minLength":1,"title":"Event Type"},"title":{"type":"string","maxLength":300,"minLength":1,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"in_game_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Game Date"},"sequence":{"type":"integer","minimum":0,"title":"Sequence","default":0},"visibility":{"type":"string","enum":["gm_only","players","public"],"title":"Visibility","default":"players"},"occurred_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Occurred At"},"supersedes_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Supersedes Event Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"}},"type":"object","required":["event_type","title","in_game_year","id","campaign_id","recorded_at"],"title":"EventRead"},"GloryCreate":{"properties":{"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Session Id"},"awarded_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Awarded Year"},"sequence":{"type":"integer","minimum":0,"title":"Sequence","default":0},"amount":{"type":"integer","title":"Amount"},"category":{"type":"string","maxLength":100,"minLength":1,"title":"Category","default":"other"},"reason":{"type":"string","minLength":1,"title":"Reason"},"scope":{"type":"string","enum":["gm_only","players","shared"],"title":"Scope","default":"players"}},"type":"object","required":["awarded_year","amount","reason"],"title":"GloryCreate"},"GloryRead":{"properties":{"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"session_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Session Id"},"awarded_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Awarded Year"},"sequence":{"type":"integer","minimum":0,"title":"Sequence","default":0},"amount":{"type":"integer","title":"Amount"},"category":{"type":"string","maxLength":100,"minLength":1,"title":"Category","default":"other"},"reason":{"type":"string","minLength":1,"title":"Reason"},"scope":{"type":"string","enum":["gm_only","players","shared"],"title":"Scope","default":"players"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"}},"type":"object","required":["awarded_year","amount","reason","id","campaign_id","character_id","recorded_at"],"title":"GloryRead"},"GlorySummary":{"properties":{"character_id":{"type":"string","format":"uuid","title":"Character Id"},"total":{"type":"integer","title":"Total"},"entries":{"items":{"$ref":"#/components/schemas/GloryRead"},"type":"array","title":"Entries"}},"type":"object","required":["character_id","total","entries"],"title":"GlorySummary"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HouseholdEmploymentCreate":{"properties":{"character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Character Id"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"role":{"type":"string","maxLength":100,"minLength":1,"title":"Role"},"social_rank":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Social Rank"},"key_skill":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Skill"},"key_skill_value":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Key Skill Value"},"annual_cost":{"anyOf":[{"type":"number","minimum":0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Annual Cost","default":"0"},"start_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Start Year"},"end_year":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"End Year"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","role","start_year"],"title":"HouseholdEmploymentCreate"},"HouseholdEmploymentRead":{"properties":{"character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Character Id"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"role":{"type":"string","maxLength":100,"minLength":1,"title":"Role"},"social_rank":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Social Rank"},"key_skill":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Skill"},"key_skill_value":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Key Skill Value"},"annual_cost":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Annual Cost","default":"0"},"start_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Start Year"},"end_year":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"End Year"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"manor_id":{"type":"string","format":"uuid","title":"Manor Id"},"start_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Start Event Id"},"end_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"End Event Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["name","role","start_year","id","campaign_id","manor_id","start_event_id","end_event_id","created_at"],"title":"HouseholdEmploymentRead"},"ManorAnnualResolutionCreate":{"properties":{"winter_phase_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Winter Phase Id"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"steward_character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Steward Character Id"},"stewardship_value":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Stewardship Value"},"roll_result":{"type":"string","maxLength":100,"minLength":1,"title":"Roll Result"},"income":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Income","default":"0"},"expenses":{"anyOf":[{"type":"number","minimum":0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Expenses","default":"0"},"privy_funds":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Privy Funds","default":"0"},"famine_stage":{"type":"integer","minimum":0,"title":"Famine Stage","default":0},"population_change":{"type":"integer","title":"Population Change","default":0},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["in_game_year","roll_result"],"title":"ManorAnnualResolutionCreate"},"ManorAnnualResolutionRead":{"properties":{"winter_phase_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Winter Phase Id"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"steward_character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Steward Character Id"},"stewardship_value":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Stewardship Value"},"roll_result":{"type":"string","maxLength":100,"minLength":1,"title":"Roll Result"},"income":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Income","default":"0"},"expenses":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Expenses","default":"0"},"privy_funds":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Privy Funds","default":"0"},"famine_stage":{"type":"integer","minimum":0,"title":"Famine Stage","default":0},"population_change":{"type":"integer","title":"Population Change","default":0},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"manor_id":{"type":"string","format":"uuid","title":"Manor Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["in_game_year","roll_result","id","campaign_id","manor_id","event_id","created_at"],"title":"ManorAnnualResolutionRead"},"ManorImprovementCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"improvement_type":{"type":"string","maxLength":100,"minLength":1,"title":"Improvement Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name","improvement_type"],"title":"ManorImprovementCreate"},"ManorImprovementRead":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"improvement_type":{"type":"string","maxLength":100,"minLength":1,"title":"Improvement Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"manor_id":{"type":"string","format":"uuid","title":"Manor Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["name","improvement_type","id","campaign_id","manor_id","created_at"],"title":"ManorImprovementRead"},"ManorRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"location_id":{"type":"string","format":"uuid","title":"Location Id"},"customary_income":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Customary Income"},"assized_rent":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Assized Rent"},"population":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Population"},"base_defensive_value":{"type":"integer","title":"Base Defensive Value"},"acreage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Acreage"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","campaign_id","location_id","customary_income","assized_rent","population","base_defensive_value","acreage","notes","created_at","updated_at"],"title":"ManorRead"},"ManorTenureCreate":{"properties":{"holder_character_id":{"type":"string","format":"uuid","title":"Holder Character Id"},"liege_character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Liege Character Id"},"start_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Start Event Id"},"start_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Start Year"},"tenure_type":{"type":"string","maxLength":100,"minLength":1,"title":"Tenure Type","default":"grant"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms"}},"type":"object","required":["holder_character_id","start_year"],"title":"ManorTenureCreate"},"ManorTenureRead":{"properties":{"holder_character_id":{"type":"string","format":"uuid","title":"Holder Character Id"},"liege_character_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Liege Character Id"},"start_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Start Event Id"},"start_year":{"type":"integer","maximum":9999,"minimum":1,"title":"Start Year"},"tenure_type":{"type":"string","maxLength":100,"minLength":1,"title":"Tenure Type","default":"grant"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"manor_id":{"type":"string","format":"uuid","title":"Manor Id"},"end_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"End Event Id"},"end_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Year"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["holder_character_id","start_year","id","campaign_id","manor_id","end_event_id","end_year","created_at"],"title":"ManorTenureRead"},"SessionRead":{"properties":{"session_number":{"type":"integer","exclusiveMinimum":0,"title":"Session Number"},"title":{"type":"string","maxLength":300,"minLength":1,"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"played_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Played At"},"in_game_start_year":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"In Game Start Year"},"in_game_end_year":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"title":"In Game End Year"},"status":{"type":"string","enum":["planned","in_progress","completed","cancelled"],"title":"Status","default":"planned"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["session_number","title","id","campaign_id","created_at","updated_at"],"title":"SessionRead"},"SquireRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"source_key":{"type":"string","title":"Source Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","campaign_id","character_id","source_key","created_at"],"title":"SquireRead"},"SquireServiceRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"squire_id":{"type":"string","format":"uuid","title":"Squire Id"},"knight_character_id":{"type":"string","format":"uuid","title":"Knight Character Id"},"source_key":{"type":"string","title":"Source Key"},"start_year":{"type":"integer","title":"Start Year"},"end_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Year"},"start_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Start Event Id"},"end_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"End Event Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","campaign_id","squire_id","knight_character_id","source_key","start_year","end_year","start_event_id","end_event_id","created_at"],"title":"SquireServiceRead"},"SquireStateRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"squire_id":{"type":"string","format":"uuid","title":"Squire Id"},"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"effective_year":{"type":"integer","title":"Effective Year"},"sequence":{"type":"integer","title":"Sequence"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"age":{"type":"integer","title":"Age"},"skill":{"type":"integer","title":"Skill"},"knight_modifier":{"type":"integer","title":"Knight Modifier"},"glory":{"type":"integer","title":"Glory"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"gm_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gm Description"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"}},"type":"object","required":["id","campaign_id","squire_id","event_id","effective_year","sequence","category","age","skill","knight_modifier","glory","description","gm_description","reason","recorded_at"],"title":"SquireStateRead"},"TreasuryEntryCreate":{"properties":{"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"annual_resolution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Annual Resolution Id"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"amount":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount"},"category":{"type":"string","maxLength":100,"minLength":1,"title":"Category"},"description":{"type":"string","minLength":1,"title":"Description"}},"type":"object","required":["in_game_year","amount","category","description"],"title":"TreasuryEntryCreate"},"TreasuryEntryRead":{"properties":{"event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Event Id"},"annual_resolution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Annual Resolution Id"},"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"amount":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Amount"},"category":{"type":"string","maxLength":100,"minLength":1,"title":"Category"},"description":{"type":"string","minLength":1,"title":"Description"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"manor_id":{"type":"string","format":"uuid","title":"Manor Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["in_game_year","amount","category","description","id","campaign_id","manor_id","created_at"],"title":"TreasuryEntryRead"},"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"},"WinterParticipantRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"winter_phase_id":{"type":"string","format":"uuid","title":"Winter Phase Id"},"character_id":{"type":"string","format":"uuid","title":"Character Id"},"history_entry_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"History Entry Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","campaign_id","winter_phase_id","character_id","history_entry_id","created_at"],"title":"WinterParticipantRead"},"WinterPhaseCreate":{"properties":{"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"status":{"type":"string","maxLength":100,"minLength":1,"title":"Status","default":"recorded"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["in_game_year"],"title":"WinterPhaseCreate"},"WinterPhaseRead":{"properties":{"in_game_year":{"type":"integer","maximum":9999,"minimum":1,"title":"In Game Year"},"status":{"type":"string","maxLength":100,"minLength":1,"title":"Status","default":"recorded"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"id":{"type":"string","format":"uuid","title":"Id"},"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id"},"event_id":{"type":"string","format":"uuid","title":"Event Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["in_game_year","id","campaign_id","event_id","created_at"],"title":"WinterPhaseRead"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Campaign API key stored as a secret in the calling client."}}},"security":[{"ApiKeyAuth":[]}],"x-chatgpt-instructions":{"purpose":"Persistent memory for multi-generational Pendragon campaigns.","rules":["Never invent UUIDs. List or create the required parent record first.","Treat events, ledgers, ancestry, inheritance transfers, and family history as append-only.","Use the campaign_id from the selected campaign on every campaign-scoped call.","Record significant narrative changes as events and link domain records when supported.","Respect knowledge scope: gm_only data must not be disclosed to players."],"action_scope":"winter-phase"}}