{"openapi":"3.1.0","info":{"title":"GardenArena","description":"Défis de stratégies GardenScript : simulation bornée par le noyau Rust LSK, traces et résultats vérifiables. Le Trial terrain se prépare séparément.","version":"8.0.0"},"paths":{"/telemetrie/navigation/v1":{"post":{"summary":"Navigation Event","operationId":"navigation_event_telemetrie_navigation_v1_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/token":{"post":{"tags":["auth"],"summary":"Token Login","description":"OAuth2 compatible token endpoint (uses username field as email).","operationId":"token_login_api_auth_token_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_token_login_api_auth_token_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Get Me","operationId":"get_me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/auth/setup":{"put":{"tags":["auth"],"summary":"Setup Garden","operationId":"setup_garden_api_auth_setup_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/garden/":{"get":{"tags":["garden"],"summary":"Get Garden","description":"Return full garden overview for the current user.","operationId":"get_garden_api_garden__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/garden/memory":{"get":{"tags":["garden"],"summary":"Get Garden Memory","description":"Return the full garden memory JSON (for AI context).","operationId":"get_garden_memory_api_garden_memory_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/garden/plant":{"post":{"tags":["garden"],"summary":"Add Plant","operationId":"add_plant_api_garden_plant_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPlantRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/garden/plant/{plant_id}":{"put":{"tags":["garden"],"summary":"Update Plant","operationId":"update_plant_api_garden_plant__plant_id__put","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"plant_id","in":"path","required":true,"schema":{"type":"integer","title":"Plant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlantRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["garden"],"summary":"Delete Plant","operationId":"delete_plant_api_garden_plant__plant_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"plant_id","in":"path","required":true,"schema":{"type":"integer","title":"Plant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/garden/plant/{plant_id}/harvest":{"post":{"tags":["garden"],"summary":"Add Harvest","operationId":"add_harvest_api_garden_plant__plant_id__harvest_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"plant_id","in":"path","required":true,"schema":{"type":"integer","title":"Plant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddHarvestRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/garden/plant/{plant_id}/history":{"get":{"tags":["garden"],"summary":"Get Plant History","operationId":"get_plant_history_api_garden_plant__plant_id__history_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"plant_id","in":"path","required":true,"schema":{"type":"integer","title":"Plant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze/photo":{"post":{"tags":["analyze"],"summary":"Analyze Photo Route","description":"Analyze a plant photo with Claude Vision.","operationId":"analyze_photo_route_api_analyze_photo_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_photo_route_api_analyze_photo_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/analyze/daily-advice":{"post":{"tags":["analyze"],"summary":"Daily Advice","description":"Return 3 personalized daily gardening actions for the user.","operationId":"daily_advice_api_analyze_daily_advice_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/analyze/planting-advice":{"post":{"tags":["analyze"],"summary":"Planting Advice","description":"Return planting recommendations based on user's profile and current season.","operationId":"planting_advice_api_analyze_planting_advice_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlantingAdviceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/analyze/arena-improvement":{"post":{"tags":["analyze"],"summary":"Arena Improvement","description":"Return advice on how to improve Arena ranking for a specific plant.","operationId":"arena_improvement_api_analyze_arena_improvement_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"plant_name","in":"query","required":true,"schema":{"type":"string","title":"Plant Name"}},{"name":"current_kg_per_plant","in":"query","required":true,"schema":{"type":"number","title":"Current Kg Per Plant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze/wiki/{plant_name}":{"get":{"tags":["analyze"],"summary":"Get Plant Wiki","description":"Return plant info from the knowledge base.","operationId":"get_plant_wiki_api_analyze_wiki__plant_name__get","parameters":[{"name":"plant_name","in":"path","required":true,"schema":{"type":"string","title":"Plant Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze/demo":{"post":{"tags":["analyze"],"summary":"Analyze Demo","description":"Demo endpoint — no auth required. One free scan to show the magic.\nUses generic France context (no user history).","operationId":"analyze_demo_api_analyze_demo_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_demo_api_analyze_demo_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze/season-scenario":{"get":{"tags":["analyze"],"summary":"Get Season Scenario Route","description":"Return the season scenario for the current user based on historical weather data.","operationId":"get_season_scenario_route_api_analyze_season_scenario_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/analyze/season-scenario/public":{"get":{"tags":["analyze"],"summary":"Get Season Scenario Public","description":"Public season scenario endpoint for landing page.","operationId":"get_season_scenario_public_api_analyze_season_scenario_public_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","default":46.5,"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"type":"number","default":2.5,"title":"Lon"}},{"name":"region","in":"query","required":false,"schema":{"type":"string","default":"","title":"Region"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze/wiki":{"get":{"tags":["analyze"],"summary":"List Wiki Plants","description":"List all plants available in the wiki.","operationId":"list_wiki_plants_api_analyze_wiki_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analyze/season":{"get":{"tags":["analyze"],"summary":"Get Season Context","description":"Return current season advice for the user's climate zone.","operationId":"get_season_context_api_analyze_season_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/arena/submit":{"post":{"tags":["arena"],"summary":"Submit Harvest","description":"Submit a harvest result to the Arena leaderboard.","operationId":"submit_harvest_api_arena_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitArenaRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/arena/rankings/{plant_name}":{"get":{"tags":["arena"],"summary":"Get Rankings By Plant","description":"Top 10 globally for a plant across all regions.","operationId":"get_rankings_by_plant_api_arena_rankings__plant_name__get","parameters":[{"name":"plant_name","in":"path","required":true,"schema":{"type":"string","title":"Plant Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/rankings/{plant_name}/{region}":{"get":{"tags":["arena"],"summary":"Get Rankings By Plant Region","description":"Top 10 for a plant in a specific region.","operationId":"get_rankings_by_plant_region_api_arena_rankings__plant_name___region__get","parameters":[{"name":"plant_name","in":"path","required":true,"schema":{"type":"string","title":"Plant Name"}},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/global":{"get":{"tags":["arena"],"summary":"Get Global Rankings","description":"Top gardens by kg_per_plant across all plants and regions.","operationId":"get_global_rankings_api_arena_global_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/arena/stats":{"get":{"tags":["arena"],"summary":"Get Community Stats","description":"Community statistics: total gardens, plants, kg harvested.","operationId":"get_community_stats_api_arena_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/arena/my-entries":{"get":{"tags":["arena"],"summary":"Get My Arena Entries","description":"Return the current user's own Arena entries (unmasked).","operationId":"get_my_arena_entries_api_arena_my_entries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/lab/engine":{"get":{"tags":["living-lab"],"summary":"Engine Metadata","description":"Describe the local engine without triggering simulation work.","operationId":"engine_metadata_api_lab_engine_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Engine Metadata Api Lab Engine Get"}}}}}}},"/api/lab/twin":{"get":{"tags":["living-lab"],"summary":"Featured Twin","description":"Serve validated, cached bytes; never invoke Rust or an API here.","operationId":"featured_twin_api_lab_twin_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/spec":{"get":{"tags":["gardenscript"],"summary":"Get Spec","description":"Compiler contract; the Rust CLI remains the grammar source of truth.","operationId":"get_spec_api_gardenscript_spec_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/reference":{"get":{"tags":["gardenscript"],"summary":"Get Reference","operationId":"get_reference_api_gardenscript_reference_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/validate":{"post":{"tags":["gardenscript"],"summary":"Validate Gardenscript","operationId":"validate_gardenscript_api_gardenscript_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/gardenscript/arenas":{"get":{"tags":["gardenscript"],"summary":"List Gardenscript Arenas","operationId":"list_gardenscript_arenas_api_gardenscript_arenas_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["draft","open","locked","running","complete"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["gardenscript"],"summary":"Create Gardenscript Arena","operationId":"create_gardenscript_arena_api_gardenscript_arenas_post","security":[{"OAuth2PasswordBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateArenaRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/featured":{"get":{"tags":["gardenscript"],"summary":"Get Featured Gardenscript Arena","operationId":"get_featured_gardenscript_arena_api_gardenscript_featured_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/featured/coop":{"get":{"tags":["gardenscript"],"summary":"Get Featured Coop Arena","description":"Return only the featured flock arena; the plant endpoint stays stable.","operationId":"get_featured_coop_arena_api_gardenscript_featured_coop_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/featured/coop/exhibition":{"get":{"tags":["gardenscript"],"summary":"Get Featured Coop Exhibition","description":"Return a cacheable Coop podium without any entrant timeline.","operationId":"get_featured_coop_exhibition_api_gardenscript_featured_coop_exhibition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/featured/tomato/exhibition":{"get":{"tags":["gardenscript"],"summary":"Get Featured Tomato Exhibition","description":"Return a cacheable plant podium without any entrant timeline.","operationId":"get_featured_tomato_exhibition_api_gardenscript_featured_tomato_exhibition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/gardenscript/arena/{slug}":{"get":{"tags":["gardenscript"],"summary":"Get Gardenscript Arena","operationId":"get_gardenscript_arena_api_gardenscript_arena__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/open":{"post":{"tags":["gardenscript"],"summary":"Open Gardenscript Arena","operationId":"open_gardenscript_arena_api_gardenscript_arena__slug__open_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/strategies":{"post":{"tags":["gardenscript"],"summary":"Submit Gardenscript Strategy","operationId":"submit_gardenscript_strategy_api_gardenscript_arena__slug__strategies_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitStrategyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/my-strategy":{"get":{"tags":["gardenscript"],"summary":"Get My Gardenscript Strategy","operationId":"get_my_gardenscript_strategy_api_gardenscript_arena__slug__my_strategy_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/seal":{"post":{"tags":["gardenscript"],"summary":"Seal Gardenscript Arena","operationId":"seal_gardenscript_arena_api_gardenscript_arena__slug__seal_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/runs":{"post":{"tags":["gardenscript"],"summary":"Launch Gardenscript Run","description":"Launch the installed offline runner; no seed or path is caller-controlled.","operationId":"launch_gardenscript_run_api_gardenscript_arena__slug__runs_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/replay/winner":{"get":{"tags":["gardenscript"],"summary":"Get Gardenscript Winner Replay","description":"Serve one immutable winning timeline instead of every arena trace.","operationId":"get_gardenscript_winner_replay_api_gardenscript_arena__slug__replay_winner_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gardenscript/arena/{slug}/results":{"get":{"tags":["gardenscript"],"summary":"Get Gardenscript Results","operationId":"get_gardenscript_results_api_gardenscript_arena__slug__results_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reality/trials":{"get":{"tags":["reality-trials"],"summary":"List Reality Trials","operationId":"list_reality_trials_api_reality_trials_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reality/trials/{slug}":{"get":{"tags":["reality-trials"],"summary":"Get Reality Trial","operationId":"get_reality_trial_api_reality_trials__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/manifest.json":{"get":{"tags":["reality-battles"],"summary":"Manifeste public du Reality Trial 001","description":"Serve only the currently reviewed, preparation-only manifest bytes.\n\n``BattleRepository`` deliberately accepts only the prospective PREPARING\ncontract with no observations and no result artifacts.  A future state\ntherefore fails closed until its public projection is reviewed in code.","operationId":"public_trial_manifest_api_trial_manifest_json_get","responses":{"200":{"description":"Successful Response"}}}},"/api/bamboo/spec":{"get":{"tags":["bamboo"],"summary":"Bamboo Spec","description":"Describe the public contract without invoking the simulator.","operationId":"bamboo_spec_api_bamboo_spec_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/validate":{"post":{"tags":["bamboo"],"summary":"Validate Bamboo Gardenscript","description":"Compile a bamboo policy locally; never persist or simulate it.","operationId":"validate_bamboo_gardenscript_api_bamboo_validate_post","requestBody":{"content":{"application/json":{"schema":{"properties":{"source":{"type":"string"}},"additionalProperties":false,"type":"object","required":["source"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/season-one":{"get":{"tags":["bamboo"],"summary":"Get Bamboo Season One","description":"Return the public roster and only persisted tournament evidence.","operationId":"get_bamboo_season_one_api_bamboo_season_one_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/season-one/operator/seal":{"post":{"tags":["bamboo"],"summary":"Seal Bamboo Season One","description":"Seal the exact official roster; participants cannot call this route.","operationId":"seal_bamboo_season_one_api_bamboo_season_one_operator_seal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/bamboo/season-one/operator/launch":{"post":{"tags":["bamboo"],"summary":"Launch Bamboo Season One","description":"Launch the installed offline adapter for the exact sealed season.","operationId":"launch_bamboo_season_one_api_bamboo_season_one_operator_launch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/bamboo/season-one/operator/strategies/{strategy_id}/evaluation-mode":{"patch":{"tags":["bamboo"],"summary":"Set Bamboo Season Strategy Evaluation Mode","description":"Reclassify provenance before sealing; never rewrite GardenScript bytes.","operationId":"set_bamboo_season_strategy_evaluation_mode_api_bamboo_season_one_operator_strategies__strategy_id__evaluation_mode_patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"strategy_id","in":"path","required":true,"schema":{"type":"integer","title":"Strategy Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BambooSeasonEvaluationModeUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bamboo/season-one/strategies":{"post":{"tags":["bamboo"],"summary":"Submit Bamboo Season Strategy","description":"Register one immutable BYO-AI policy without starting a simulation.","operationId":"submit_bamboo_season_strategy_api_bamboo_season_one_strategies_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["display_name","attribution","source","expected_source_sha256","expected_program_sha256"]}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/bamboo/season-one/my-strategy":{"get":{"tags":["bamboo"],"summary":"Get My Bamboo Season Strategy","description":"Return only the authenticated participant's private stored program.","operationId":"get_my_bamboo_season_strategy_api_bamboo_season_one_my_strategy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/bamboo/season-one/replay/winner":{"get":{"tags":["bamboo"],"summary":"Get Bamboo Season Winner Replay","description":"Serve only the persisted winner timeline after a complete run.","operationId":"get_bamboo_season_winner_replay_api_bamboo_season_one_replay_winner_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Get Bamboo Season Winner Replay","description":"Serve only the persisted winner timeline after a complete run.","operationId":"get_bamboo_season_winner_replay_api_bamboo_season_one_replay_winner_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/scenarios/featured":{"get":{"tags":["bamboo"],"summary":"Featured Bamboo Scenario","operationId":"featured_bamboo_scenario_api_bamboo_scenarios_featured_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Featured Bamboo Scenario","operationId":"featured_bamboo_scenario_api_bamboo_scenarios_featured_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/hazard-gauntlet":{"get":{"tags":["bamboo"],"summary":"Bamboo Hazard Gauntlet","description":"Serve the shared v0.6 stress calendar without running the simulator.","operationId":"bamboo_hazard_gauntlet_api_bamboo_hazard_gauntlet_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Bamboo Hazard Gauntlet","description":"Serve the shared v0.6 stress calendar without running the simulator.","operationId":"bamboo_hazard_gauntlet_api_bamboo_hazard_gauntlet_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bamboo/hydrology-now":{"head":{"tags":["bamboo"],"summary":"Bamboo Hydrology Now","description":"Project one sealed gauntlet day onto the public 3D volume.","operationId":"bamboo_hydrology_now_api_bamboo_hydrology_now_head","parameters":[{"name":"day","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Day"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["bamboo"],"summary":"Bamboo Hydrology Now","description":"Project one sealed gauntlet day onto the public 3D volume.","operationId":"bamboo_hydrology_now_api_bamboo_hydrology_now_head","parameters":[{"name":"day","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"title":"Day"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bamboo/replays/featured":{"get":{"tags":["bamboo"],"summary":"Featured Bamboo Replay","operationId":"featured_bamboo_replay_api_bamboo_replays_featured_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Featured Bamboo Replay","operationId":"featured_bamboo_replay_api_bamboo_replays_featured_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/bambouseraie/card.png":{"get":{"tags":["bamboo"],"summary":"Bamboo Share Card","operationId":"bamboo_share_card_bambouseraie_card_png_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Bamboo Share Card","operationId":"bamboo_share_card_bambouseraie_card_png_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/bambouseraie/challenge.md":{"get":{"tags":["bamboo"],"summary":"Bamboo Challenge Markdown","description":"Serve the versioned BYO-AI mission without generating any content.","operationId":"bamboo_challenge_markdown_bambouseraie_challenge_md_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["bamboo"],"summary":"Bamboo Challenge Markdown","description":"Serve the versioned BYO-AI mission without generating any content.","operationId":"bamboo_challenge_markdown_bambouseraie_challenge_md_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/challenge":{"get":{"tags":["bamboo-training"],"summary":"Training Challenge","operationId":"training_challenge_api_training_challenge_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/scenario":{"get":{"tags":["bamboo-training"],"summary":"Training Scenario","operationId":"training_scenario_api_training_scenario_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/defi/bambou/challenge.md":{"get":{"tags":["bamboo-training"],"summary":"Training Markdown","operationId":"training_markdown_defi_bambou_challenge_md_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/validate":{"post":{"tags":["bamboo-training"],"summary":"Validate Training","operationId":"validate_training_api_training_validate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/run":{"post":{"tags":["bamboo-training"],"summary":"Run Training","operationId":"run_training_api_training_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/explain":{"post":{"tags":["bamboo-training"],"summary":"Explain Training","operationId":"explain_training_api_training_explain_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/artifact":{"post":{"tags":["bamboo-training"],"summary":"Export Training","operationId":"export_training_api_training_artifact_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/training/replay":{"post":{"tags":["bamboo-training"],"summary":"Replay Training","operationId":"replay_training_api_training_replay_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/missions/week-after-v1":{"get":{"tags":["coop-workshop"],"summary":"Farm Week Catalog","operationId":"farm_week_catalog_api_farm_missions_week_after_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/coop-play/catalog":{"get":{"tags":["coop-workshop"],"summary":"Workshop Catalog","operationId":"workshop_catalog_api_coop_play_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/stewardship/try":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_stewardship_try_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/papillon/try":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_papillon_try_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/compare":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_compare_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/policy/run":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_policy_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/policy/validate":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_policy_validate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/autopilot":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_autopilot_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/next-event":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_next_event_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/play":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_play_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/simulate":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_farm_simulate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/coop-play/simulate":{"post":{"tags":["coop-workshop"],"summary":"Workshop Simulate","operationId":"workshop_simulate_api_coop_play_simulate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/stewardship/intro":{"get":{"tags":["coop-workshop"],"summary":"Farm Stewardship Catalog","operationId":"farm_stewardship_catalog_api_farm_stewardship_intro_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/stewardship/catalog":{"get":{"tags":["coop-workshop"],"summary":"Farm Stewardship Catalog","operationId":"farm_stewardship_catalog_api_farm_stewardship_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/papillon/intro":{"get":{"tags":["coop-workshop"],"summary":"Farm Papillon Catalog","operationId":"farm_papillon_catalog_api_farm_papillon_intro_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/papillon/catalog":{"get":{"tags":["coop-workshop"],"summary":"Farm Papillon Catalog","operationId":"farm_papillon_catalog_api_farm_papillon_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/policy/catalog":{"get":{"tags":["coop-workshop"],"summary":"Farm Policy Catalog","operationId":"farm_policy_catalog_api_farm_policy_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/compare/catalog":{"get":{"tags":["coop-workshop"],"summary":"Farm Compare Catalog","operationId":"farm_compare_catalog_api_farm_compare_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/catalog":{"get":{"tags":["coop-workshop"],"summary":"Farm Catalog","operationId":"farm_catalog_api_farm_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/farm/weather/communes":{"get":{"tags":["coop-workshop"],"summary":"Farm Weather Communes","operationId":"farm_weather_communes_api_farm_weather_communes_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/farm/weather":{"get":{"tags":["coop-workshop"],"summary":"Farm Weather Get","operationId":"farm_weather_get_api_farm_weather_get","parameters":[{"name":"commune","in":"query","required":true,"schema":{"type":"string","title":"Commune"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date"}},{"name":"station_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Station Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddHarvestRequest":{"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"},"kg":{"type":"number","title":"Kg"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","default":""}},"type":"object","required":["kg"],"title":"AddHarvestRequest"},"AddPlantRequest":{"properties":{"name":{"type":"string","title":"Name"},"variety":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variety","default":""},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone","default":""},"planted_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Planted Date","default":""},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","default":""},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","default":""}},"type":"object","required":["name"],"title":"AddPlantRequest"},"AttributionRequest":{"properties":{"kind":{"type":"string","const":"user_declared","title":"Kind","default":"user_declared"},"model":{"type":"string","maxLength":120,"minLength":1,"title":"Model"},"provider":{"type":"string","maxLength":120,"minLength":1,"title":"Provider"},"version":{"type":"string","maxLength":120,"minLength":1,"title":"Version"}},"additionalProperties":false,"type":"object","required":["model","provider","version"],"title":"AttributionRequest"},"BambooSeasonEvaluationModeUpdate":{"properties":{"evaluation_mode":{"type":"string","enum":["unverified","one_shot_blind","open_book_iterative"],"title":"Evaluation Mode"}},"additionalProperties":false,"type":"object","required":["evaluation_mode"],"title":"BambooSeasonEvaluationModeUpdate"},"Body_analyze_demo_api_analyze_demo_post":{"properties":{"photo":{"type":"string","format":"binary","title":"Photo"}},"type":"object","required":["photo"],"title":"Body_analyze_demo_api_analyze_demo_post"},"Body_analyze_photo_route_api_analyze_photo_post":{"properties":{"photo":{"type":"string","format":"binary","title":"Photo"},"plant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Plant Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","default":""}},"type":"object","required":["photo"],"title":"Body_analyze_photo_route_api_analyze_photo_post"},"Body_token_login_api_auth_token_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_token_login_api_auth_token_post"},"CreateArenaRequest":{"properties":{"slug":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Slug"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"ruleset":{"type":"string","enum":["plant-v0.1","plant-v0.2","flock-v0.3"],"title":"Ruleset"},"scenario_id":{"type":"string","enum":["preseason-tomato-14d-2026","season-one-tomato-21d-2026","coop-night-watch-30d-2026"],"title":"Scenario Id"},"scenario_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Scenario Sha256"},"status":{"type":"string","const":"draft","title":"Status","default":"draft"}},"additionalProperties":false,"type":"object","required":["slug","name","ruleset","scenario_id","scenario_sha256"],"title":"CreateArenaRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"PlantingAdviceRequest":{"properties":{"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question","default":""}},"type":"object","title":"PlantingAdviceRequest"},"RegisterRequest":{"properties":{"email":{"type":"string","title":"Email"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","username","password"],"title":"RegisterRequest"},"SetupRequest":{"properties":{"city":{"type":"string","title":"City"},"postal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal","default":""},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon"},"garden_size_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Garden Size M2"},"garden_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Garden Type","default":""},"garden_soil":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Garden Soil","default":""},"garden_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Garden Orientation","default":""}},"type":"object","required":["city"],"title":"SetupRequest"},"SubmitArenaRequest":{"properties":{"plant_name":{"type":"string","title":"Plant Name"},"variety":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variety","default":""},"region":{"type":"string","title":"Region"},"total_kg":{"type":"number","title":"Total Kg"},"plants_count":{"type":"integer","title":"Plants Count","default":1},"season":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Season"}},"type":"object","required":["plant_name","region","total_kg"],"title":"SubmitArenaRequest"},"SubmitStrategyRequest":{"properties":{"display_name":{"type":"string","maxLength":80,"minLength":1,"title":"Display Name"},"attribution":{"anyOf":[{"$ref":"#/components/schemas/AttributionRequest"},{"type":"null"}]},"attribution_model":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Attribution Model"},"attribution_provider":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Attribution Provider"},"attribution_version":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Attribution Version"},"source":{"type":"string","maxLength":16384,"minLength":1,"title":"Source"},"prompt_sha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Prompt Sha256"},"transcript_sha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Transcript Sha256"}},"additionalProperties":false,"type":"object","required":["display_name","source"],"title":"SubmitStrategyRequest"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"user":{"additionalProperties":true,"type":"object","title":"User"}},"type":"object","required":["access_token","user"],"title":"TokenResponse"},"UpdatePlantRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"variety":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variety"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"planted_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Planted Date"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"UpdatePlantRequest"},"ValidateRequest":{"properties":{"source":{"type":"string","maxLength":16384,"minLength":1,"title":"Source"}},"additionalProperties":false,"type":"object","required":["source"],"title":"ValidateRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/api/auth/token"}}}}}}