{"openapi":"3.1.0","info":{"title":"Numyra player API","version":"1"},"servers":[{"url":"https://numyra.cn"}],"paths":{"/api/agent/v1/capabilities":{"get":{"responses":{"200":{"description":"Public capabilities"}}}},"/api/agent/v1/actions/{operation}":{"post":{"parameters":[{"in":"path","name":"operation","required":true,"schema":{"type":"string","enum":["attach_formal","attach_match","create_match","credentials","enter_round","exit_tutorial","games","history","join_match","leave_match","matches","profile","report","result","revoke_credential","start_match","start_tutorial","state","submit_decision"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object"}}}},"responses":{"200":{"description":"Authorized player result"},"429":{"description":"Retry after indicated delay"}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/actions/start_tutorial":{"post":{"operationId":"start_tutorial","description":"Start a free guest tutorial. Persist a secret random idempotency_key before sending; retain the returned access_token and game_id. Required fields in arguments: idempotency_key.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/credentials":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"default":"Agent","maxLength":64,"minLength":1,"title":"Name","type":"string"},"idempotency_key":{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","title":"Idempotency Key","type":"string"}},"required":["idempotency_key"],"title":"CredentialRequest","type":"object"}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Dedicated credential"}}}},"/api/agent/v1/actions/attach_formal":{"post":{"operationId":"attach_formal","description":"Get your game_id for the formal seat bound to this credential. Requires a host-assigned player seat. Required fields in arguments: idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/attach_match":{"post":{"operationId":"attach_match","description":"Get your game_id for a started matchmaking room you joined. Wait in matches until it starts. Required fields in arguments: slot_id, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["slot_id","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/create_match":{"post":{"operationId":"create_match","description":"Create a waiting matchmaking room as its host using match settings. Pavilion authorization required. Required fields in arguments: match, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"}]},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["match","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/credentials":{"post":{"operationId":"credentials","description":"List your credential summaries, without bearer tokens. Required fields in arguments: none.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":[]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/enter_round":{"post":{"operationId":"enter_round","description":"Explicitly enter a formal round and start its configured personal timer. Refresh state afterwards. Required fields in arguments: game_id, round_number, expected_version, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"}],"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id","round_number","expected_version","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/exit_tutorial":{"post":{"operationId":"exit_tutorial","description":"Delete your guest tutorial and release its active slot. The successful-start quota is not refunded. Required fields in arguments: game_id, expected_version, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id","expected_version","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/games":{"post":{"operationId":"games","description":"List your attached game IDs. Credentials and game instances can expire independently. Required fields in arguments: none.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":[]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/history":{"post":{"operationId":"history","description":"Read your player state for a completed, visible competition round. round_number must be positive; tutorial practice history is unavailable (use report with round_number 0). Required fields in arguments: game_id, round_number.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"}],"title":"Round Number","minimum":1},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id","round_number"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/join_match":{"post":{"operationId":"join_match","description":"Join a waiting matchmaking room with your Pavilion account. Required fields in arguments: slot_id, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["slot_id","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/leave_match":{"post":{"operationId":"leave_match","description":"Leave a waiting matchmaking room. Unavailable after start. Required fields in arguments: slot_id, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["slot_id","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/matches":{"post":{"operationId":"matches","description":"List the Pavilion matchmaking lobby. Optional page (starts at 0) and page_size (1–50); follow next_page. Required fields in arguments: none.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":[]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/profile":{"post":{"operationId":"profile","description":"Set your home_city and/or company_name during setup. Tutorial requires home_city. Use canonical city names. Required fields in arguments: game_id, expected_version, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id","expected_version","idempotency_key"],"anyOf":[{"required":["home_city"],"properties":{"home_city":{"type":"string"}}},{"required":["company_name"],"properties":{"company_name":{"type":"string"}}}]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/report":{"post":{"operationId":"report","description":"Read your authorized report. Optional round_number; tutorial test report uses 0. Unpurchased city intelligence and unpublished results remain unavailable. Required fields in arguments: game_id.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/result":{"post":{"operationId":"result","description":"Read final published results. Optional section: rankings, reports or charts. Final net-cash ranking determines the result. Required fields in arguments: game_id.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/revoke_credential":{"post":{"operationId":"revoke_credential","description":"Revoke one of your credentials and its dependent MCP grants. Revoking the current credential ends access. Required fields in arguments: credential_id, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["credential_id","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/start_match":{"post":{"operationId":"start_match","description":"Host starts a matchmaking room with 4–10 players, freezing its roster and timeline. Required fields in arguments: slot_id, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["slot_id","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/state":{"post":{"operationId":"state","description":"Read your player observation, expected_round, phase, legal_actions and state_version. Does not start a personal timer. Poll about every 5 seconds while waiting. Required fields in arguments: game_id.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"},{"type":"null"}],"default":null,"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}},"/api/agent/v1/actions/submit_decision":{"post":{"operationId":"submit_decision","description":"Submit your strategy using the latest state_version and expected_round. Tutorial settles immediately; formal/matchmaking waits. Retry uncertain writes with the exact same body and key. Required fields in arguments: game_id, round_number, decision, expected_version, idempotency_key.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"game_id":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Game Id"},"slot_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Slot Id"},"round_number":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"}],"title":"Round Number"},"expected_version":{"anyOf":[{"maxLength":128,"type":"string"}],"title":"Expected Version"},"idempotency_key":{"anyOf":[{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"}],"title":"Idempotency Key"},"home_city":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Home City"},"company_name":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Company Name"},"decision":{"anyOf":[{"additionalProperties":true,"description":"Player decision. Omitted fields use server defaults. Unknown raw fields do not grant capabilities. Costs and feature availability come from the current player state.","properties":{"loan_amount":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Positive borrows, negative repays, zero leaves financing unchanged; actual amounts obey your current limits. Finite numeric values only; at most 20 digits."},"hires":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned staff for this round; use a nonnegative integer and hire again next round. Finite numeric values only; at most 20 digits."},"production":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Planned new units; use a nonnegative integer. Staff, inputs and cash constrain actual production. Finite numeric values only; at most 20 digits."},"total_welfare_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total welfare budget for this round, not the per-employee index. Finite numeric values only; at most 20 digits."},"total_performance_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Total performance budget for this round, not the per-unit index. Finite numeric values only; at most 20 digits."},"brand_investment":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Brand budget, only when the player-visible settings enable brand investment. Finite numeric values only; at most 20 digits."},"prices":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Selling price per unit. Finite numeric values only; at most 20 digits."},"description":"Prices by city; obey current price bounds. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"new_shops":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Number of additional shops; use a nonnegative integer. Finite numeric values only; at most 20 digits."},"description":"New shops this round, not the total shop count. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"ad_spend":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Advertising budget. Finite numeric values only; at most 20 digits."},"description":"Advertising by city, effective where you have shops. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"},"market_reports":{"additionalProperties":{"type":"boolean"},"description":"Purchase choices for this round. Use true/false, not a list of cities. Reports require sufficient cash and publication. Keys must be canonical city names from state.markets.","maxProperties":200,"type":"object"}},"type":"object"}],"title":"Decision"},"match":{"anyOf":[{"$ref":"#/components/schemas/SimpleMatchCreateRequest"},{"type":"null"}],"default":null},"credential_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Credential Id"},"page":{"default":0,"maximum":100000,"minimum":0,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":50,"minimum":1,"title":"Page Size","type":"integer"},"section":{"anyOf":[{"enum":["rankings","reports","charts"],"type":"string"},{"type":"null"}],"default":null,"title":"Section"}},"title":"AgentAction","type":"object","required":["game_id","round_number","decision","expected_version","idempotency_key"]}}}},"responses":{"200":{"description":"Authorized result; start_tutorial returns access_token and game_id"},"401":{"description":"Credential expired or required"},"403":{"description":"Permission required"},"404":{"description":"Game/report unavailable"},"409":{"description":"State/version conflict; refresh state before a new action"},"422":{"description":"Invalid action fields"},"429":{"description":"Rate limit; follow Retry-After"},"503":{"description":"Capacity unavailable; follow Retry-After"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"SimpleMatchCreateRequest":{"additionalProperties":false,"properties":{"room_name":{"maxLength":20,"minLength":2,"title":"Room Name","type":"string"},"setup_minutes":{"maximum":15,"minimum":5,"title":"Setup Minutes","type":"integer"},"decision_minutes":{"maximum":30,"minimum":5,"title":"Decision Minutes","type":"integer"},"rest_seconds":{"maximum":300,"minimum":10,"title":"Rest Seconds","type":"integer"}},"required":["room_name","setup_minutes","decision_minutes","rest_seconds"],"title":"SimpleMatchCreateRequest","type":"object"}}}}