{
 "components": {
  "schemas": {
   "ActivityEntryOut": {
    "properties": {
     "category": {
      "title": "Category",
      "type": "string"
     },
     "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
     },
     "entity_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Entity Id"
     },
     "entity_type": {
      "title": "Entity Type",
      "type": "string"
     },
     "entity_url": {
      "default": "",
      "title": "Entity Url",
      "type": "string"
     },
     "field": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Field"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "new_value": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "New Value"
     },
     "old_value": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Old Value"
     },
     "summary": {
      "title": "Summary",
      "type": "string"
     }
    },
    "required": [
     "id",
     "created_at",
     "category",
     "entity_type",
     "summary"
    ],
    "title": "ActivityEntryOut",
    "type": "object"
   },
   "AreaChildSummary": {
    "properties": {
     "child_count": {
      "default": 0,
      "title": "Child Count",
      "type": "integer"
     },
     "dims": {
      "default": "",
      "title": "Dims",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "default": 0,
      "title": "Plant Count",
      "type": "integer"
     },
     "summary": {
      "items": {
       "$ref": "#/components/schemas/SpeciesCount"
      },
      "title": "Summary",
      "type": "array"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "AreaChildSummary",
    "type": "object"
   },
   "AreaCreate": {
    "properties": {
     "garden_area_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Garden Area Sqft"
     },
     "length_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Length Ft"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     },
     "sketch_rotation": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Sketch Rotation"
     },
     "soil_environment": {
      "default": "",
      "title": "Soil Environment",
      "type": "string"
     },
     "structure_features": {
      "default": "",
      "title": "Structure Features",
      "type": "string"
     },
     "sunlight": {
      "default": "",
      "title": "Sunlight",
      "type": "string"
     },
     "width_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Width Ft"
     }
    },
    "required": [
     "name"
    ],
    "title": "AreaCreate",
    "type": "object"
   },
   "AreaDeleteOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     }
    },
    "required": [
     "id"
    ],
    "title": "AreaDeleteOut",
    "type": "object"
   },
   "AreaDetailOut": {
    "properties": {
     "area": {
      "$ref": "#/components/schemas/AreaOut"
     },
     "breadcrumbs": {
      "items": {
       "$ref": "#/components/schemas/Breadcrumb"
      },
      "title": "Breadcrumbs",
      "type": "array"
     },
     "children": {
      "items": {
       "$ref": "#/components/schemas/AreaChildSummary"
      },
      "title": "Children",
      "type": "array"
     },
     "current_dims": {
      "default": "",
      "title": "Current Dims",
      "type": "string"
     },
     "current_summary": {
      "items": {
       "$ref": "#/components/schemas/SpeciesCount"
      },
      "title": "Current Summary",
      "type": "array"
     },
     "current_total": {
      "default": 0,
      "title": "Current Total",
      "type": "integer"
     },
     "plants": {
      "items": {
       "$ref": "#/components/schemas/AreaPlantRow"
      },
      "title": "Plants",
      "type": "array"
     },
     "show_archived": {
      "default": false,
      "title": "Show Archived",
      "type": "boolean"
     },
     "sketch": {
      "$ref": "#/components/schemas/AreaSketch"
     },
     "status_filter": {
      "default": "planted",
      "title": "Status Filter",
      "type": "string"
     },
     "summary": {
      "$ref": "#/components/schemas/AreaPlantSummary"
     }
    },
    "required": [
     "area",
     "breadcrumbs",
     "children",
     "summary",
     "sketch"
    ],
    "title": "AreaDetailOut",
    "type": "object"
   },
   "AreaOption": {
    "description": "One flattened-picker option (v1 flattened_area_options).",
    "properties": {
     "compact": {
      "title": "Compact",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "parent": {
      "title": "Parent",
      "type": "string"
     },
     "path": {
      "title": "Path",
      "type": "string"
     }
    },
    "required": [
     "id",
     "path",
     "parent",
     "name",
     "compact"
    ],
    "title": "AreaOption",
    "type": "object"
   },
   "AreaOut": {
    "properties": {
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "dims": {
      "default": "",
      "title": "Dims",
      "type": "string"
     },
     "featured_image_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Featured Image Path"
     },
     "garden_area_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Garden Area Sqft"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "length_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Length Ft"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Notes"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "parent_pos_x": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Pos X"
     },
     "parent_pos_y": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Pos Y"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     },
     "sketch_rotation": {
      "default": 0,
      "title": "Sketch Rotation",
      "type": "integer"
     },
     "soil_environment": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Soil Environment"
     },
     "sort_order": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Sort Order"
     },
     "structure_features": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Structure Features"
     },
     "sunlight": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "",
      "title": "Sunlight"
     },
     "width_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Width Ft"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "AreaOut",
    "type": "object"
   },
   "AreaPicker": {
    "properties": {
     "areas": {
      "additionalProperties": {
       "$ref": "#/components/schemas/PickerArea"
      },
      "title": "Areas",
      "type": "object"
     },
     "roots": {
      "items": {
       "type": "integer"
      },
      "title": "Roots",
      "type": "array"
     }
    },
    "required": [
     "roots",
     "areas"
    ],
    "title": "AreaPicker",
    "type": "object"
   },
   "AreaPlantRow": {
    "description": "One direct plant_group row on the detail page (planting-cluster sorted).",
    "properties": {
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "planting_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Id"
     },
     "planting_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Name"
     },
     "planting_year": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Year"
     },
     "quantity": {
      "default": "",
      "title": "Quantity",
      "type": "string"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Name"
     },
     "status": {
      "default": "planted",
      "title": "Status",
      "type": "string"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     },
     "variety_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Name"
     }
    },
    "required": [
     "id"
    ],
    "title": "AreaPlantRow",
    "type": "object"
   },
   "AreaPlantSummary": {
    "properties": {
     "plant_list": {
      "items": {
       "$ref": "#/components/schemas/PlantSummaryRow"
      },
      "title": "Plant List",
      "type": "array"
     },
     "planting_count": {
      "title": "Planting Count",
      "type": "integer"
     },
     "species_count": {
      "title": "Species Count",
      "type": "integer"
     },
     "total_qty": {
      "title": "Total Qty",
      "type": "integer"
     },
     "variety_count": {
      "title": "Variety Count",
      "type": "integer"
     }
    },
    "required": [
     "total_qty",
     "species_count",
     "variety_count",
     "planting_count"
    ],
    "title": "AreaPlantSummary",
    "type": "object"
   },
   "AreaRef": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "AreaRef",
    "type": "object"
   },
   "AreaSketch": {
    "properties": {
     "child_label_size_ft": {
      "default": 1.5,
      "title": "Child Label Size Ft",
      "type": "number"
     },
     "children": {
      "items": {
       "$ref": "#/components/schemas/SketchChild"
      },
      "title": "Children",
      "type": "array"
     },
     "geometry": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/SketchGeometryOut"
       },
       {
        "type": "null"
       }
      ]
     },
     "plants": {
      "items": {
       "$ref": "#/components/schemas/SketchPlant"
      },
      "title": "Plants",
      "type": "array"
     }
    },
    "title": "AreaSketch",
    "type": "object"
   },
   "AreaTreeNode": {
    "properties": {
     "child_count": {
      "default": 0,
      "title": "Child Count",
      "type": "integer"
     },
     "children": {
      "items": {
       "$ref": "#/components/schemas/AreaTreeNode"
      },
      "title": "Children",
      "type": "array"
     },
     "dims": {
      "default": "",
      "title": "Dims",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "garden_area_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Garden Area Sqft"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "length_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Length Ft"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "plant_count": {
      "default": 0,
      "title": "Plant Count",
      "type": "integer"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     },
     "sketch_rotation": {
      "default": 0,
      "title": "Sketch Rotation",
      "type": "integer"
     },
     "sort_order": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Sort Order"
     },
     "summary": {
      "items": {
       "$ref": "#/components/schemas/SpeciesCount"
      },
      "title": "Summary",
      "type": "array"
     },
     "width_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Width Ft"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "AreaTreeNode",
    "type": "object"
   },
   "AreaUpdate": {
    "description": "PATCH body \u2014 only fields present in the request are applied\n(the router passes model_dump(exclude_unset=True) to the service).",
    "properties": {
     "garden_area_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Garden Area Sqft"
     },
     "length_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Length Ft"
     },
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "short_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Short Name"
     },
     "sketch_rotation": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Sketch Rotation"
     },
     "soil_environment": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Soil Environment"
     },
     "structure_features": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Structure Features"
     },
     "sunlight": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Sunlight"
     },
     "width_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Width Ft"
     }
    },
    "title": "AreaUpdate",
    "type": "object"
   },
   "AreasIndexOut": {
    "properties": {
     "options": {
      "items": {
       "$ref": "#/components/schemas/AreaOption"
      },
      "title": "Options",
      "type": "array"
     },
     "picker": {
      "$ref": "#/components/schemas/AreaPicker"
     },
     "status_filter": {
      "default": "planted",
      "title": "Status Filter",
      "type": "string"
     },
     "tree": {
      "items": {
       "$ref": "#/components/schemas/AreaTreeNode"
      },
      "title": "Tree",
      "type": "array"
     }
    },
    "required": [
     "tree",
     "options",
     "picker"
    ],
    "title": "AreasIndexOut",
    "type": "object"
   },
   "ArtifactCreate": {
    "properties": {
     "content_md": {
      "title": "Content Md",
      "type": "string"
     },
     "generated_at": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Generated At"
     },
     "kind": {
      "title": "Kind",
      "type": "string"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "title": {
      "title": "Title",
      "type": "string"
     }
    },
    "required": [
     "kind",
     "title",
     "content_md"
    ],
    "title": "ArtifactCreate",
    "type": "object"
   },
   "ArtifactDetailOut": {
    "properties": {
     "content_html": {
      "title": "Content Html",
      "type": "string"
     },
     "content_md": {
      "title": "Content Md",
      "type": "string"
     },
     "filename": {
      "title": "Filename",
      "type": "string"
     },
     "generated_at": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Generated At"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "kind": {
      "title": "Kind",
      "type": "string"
     },
     "notes": {
      "title": "Notes",
      "type": "string"
     },
     "title": {
      "title": "Title",
      "type": "string"
     }
    },
    "required": [
     "id",
     "kind",
     "title",
     "filename",
     "generated_at",
     "notes",
     "content_md",
     "content_html"
    ],
    "title": "ArtifactDetailOut",
    "type": "object"
   },
   "ArtifactListOut": {
    "properties": {
     "artifacts": {
      "items": {
       "$ref": "#/components/schemas/ArtifactOut"
      },
      "title": "Artifacts",
      "type": "array"
     },
     "by_kind": {
      "additionalProperties": {
       "items": {
        "$ref": "#/components/schemas/ArtifactOut"
       },
       "type": "array"
      },
      "title": "By Kind",
      "type": "object"
     },
     "kind_order": {
      "items": {
       "type": "string"
      },
      "title": "Kind Order",
      "type": "array"
     }
    },
    "required": [
     "artifacts",
     "by_kind",
     "kind_order"
    ],
    "title": "ArtifactListOut",
    "type": "object"
   },
   "ArtifactOut": {
    "properties": {
     "filename": {
      "title": "Filename",
      "type": "string"
     },
     "generated_at": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Generated At"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "kind": {
      "title": "Kind",
      "type": "string"
     },
     "notes": {
      "title": "Notes",
      "type": "string"
     },
     "title": {
      "title": "Title",
      "type": "string"
     }
    },
    "required": [
     "id",
     "kind",
     "title",
     "filename",
     "generated_at",
     "notes"
    ],
    "title": "ArtifactOut",
    "type": "object"
   },
   "AttachOut": {
    "properties": {
     "id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Id"
     },
     "ok": {
      "title": "Ok",
      "type": "boolean"
     },
     "peeled": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Peeled"
     },
     "remaining": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Remaining"
     },
     "saved": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Saved"
     },
     "source_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source Id"
     },
     "split": {
      "title": "Split",
      "type": "boolean"
     },
     "target_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Target Id"
     }
    },
    "required": [
     "ok",
     "split"
    ],
    "title": "AttachOut",
    "type": "object"
   },
   "AttachRequest": {
    "properties": {
     "area_id": {
      "title": "Area Id",
      "type": "integer"
     },
     "icon_plants": {
      "default": 1,
      "title": "Icon Plants",
      "type": "integer"
     },
     "position": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/Position"
       },
       {
        "type": "null"
       }
      ]
     }
    },
    "required": [
     "area_id"
    ],
    "title": "AttachRequest",
    "type": "object"
   },
   "Body_capture_create_api_notes_post": {
    "properties": {
     "audio": {
      "anyOf": [
       {
        "format": "binary",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Audio"
     },
     "captured_at": {
      "default": "",
      "title": "Captured At",
      "type": "string"
     },
     "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
     },
     "page_context": {
      "default": "",
      "title": "Page Context",
      "type": "string"
     },
     "photos": {
      "default": [],
      "items": {
       "format": "binary",
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "text": {
      "default": "",
      "title": "Text",
      "type": "string"
     },
     "transcript": {
      "default": "",
      "title": "Transcript",
      "type": "string"
     }
    },
    "title": "Body_capture_create_api_notes_post",
    "type": "object"
   },
   "Body_comment_create_api_notes_comments_post": {
    "properties": {
     "audio": {
      "anyOf": [
       {
        "format": "binary",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Audio"
     },
     "body": {
      "default": "",
      "title": "Body",
      "type": "string"
     },
     "captured_at": {
      "default": "",
      "title": "Captured At",
      "type": "string"
     },
     "comment_date": {
      "title": "Comment Date",
      "type": "string"
     },
     "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
     },
     "override_inference": {
      "default": "",
      "title": "Override Inference",
      "type": "string"
     },
     "page_context": {
      "default": "",
      "title": "Page Context",
      "type": "string"
     },
     "photos": {
      "default": [],
      "items": {
       "format": "binary",
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "secondary_target": {
      "default": [],
      "items": {
       "type": "string"
      },
      "title": "Secondary Target",
      "type": "array"
     },
     "target_id": {
      "title": "Target Id",
      "type": "integer"
     },
     "target_type": {
      "title": "Target Type",
      "type": "string"
     },
     "transcript": {
      "default": "",
      "title": "Transcript",
      "type": "string"
     }
    },
    "required": [
     "target_type",
     "target_id",
     "comment_date"
    ],
    "title": "Body_comment_create_api_notes_comments_post",
    "type": "object"
   },
   "Body_comment_update_api_notes_comments__comment_id__patch": {
    "properties": {
     "audio": {
      "anyOf": [
       {
        "format": "binary",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Audio"
     },
     "body": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Body"
     },
     "comment_date": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Comment Date"
     },
     "kind": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Kind"
     },
     "photos": {
      "default": [],
      "items": {
       "format": "binary",
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "remove_audio": {
      "default": "",
      "title": "Remove Audio",
      "type": "string"
     },
     "remove_photos": {
      "default": [],
      "items": {
       "type": "string"
      },
      "title": "Remove Photos",
      "type": "array"
     }
    },
    "title": "Body_comment_update_api_notes_comments__comment_id__patch",
    "type": "object"
   },
   "Body_post_message_api_chat_sessions__session_id__messages_post": {
    "properties": {
     "photos": {
      "default": [],
      "items": {
       "format": "binary",
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "text": {
      "default": "",
      "title": "Text",
      "type": "string"
     }
    },
    "title": "Body_post_message_api_chat_sessions__session_id__messages_post",
    "type": "object"
   },
   "Body_set_featured_image_api_featured_image__entity_type___entity_id__post": {
    "properties": {
     "image": {
      "anyOf": [
       {
        "format": "binary",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Image"
     },
     "remove": {
      "default": "",
      "title": "Remove",
      "type": "string"
     }
    },
    "title": "Body_set_featured_image_api_featured_image__entity_type___entity_id__post",
    "type": "object"
   },
   "Breadcrumb": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "Breadcrumb",
    "type": "object"
   },
   "CaptureListOut": {
    "properties": {
     "notes": {
      "items": {
       "$ref": "#/components/schemas/CaptureOut"
      },
      "title": "Notes",
      "type": "array"
     }
    },
    "title": "CaptureListOut",
    "type": "object"
   },
   "CaptureOut": {
    "properties": {
     "audio_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Audio Path"
     },
     "body": {
      "default": "",
      "title": "Body",
      "type": "string"
     },
     "captured_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Captured At"
     },
     "comment_date": {
      "anyOf": [
       {
        "format": "date",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Comment Date"
     },
     "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
     },
     "page_context": {
      "default": "",
      "title": "Page Context",
      "type": "string"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "photo_paths": {
      "default": "",
      "title": "Photo Paths",
      "type": "string"
     },
     "photos": {
      "items": {
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "processed_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Processed At"
     },
     "processing_notes": {
      "default": "",
      "title": "Processing Notes",
      "type": "string"
     },
     "status": {
      "title": "Status",
      "type": "string"
     },
     "text": {
      "default": "",
      "title": "Text",
      "type": "string"
     },
     "transcript": {
      "default": "",
      "title": "Transcript",
      "type": "string"
     }
    },
    "required": [
     "id",
     "created_at",
     "status"
    ],
    "title": "CaptureOut",
    "type": "object"
   },
   "CaptureQueueOut": {
    "properties": {
     "counts": {
      "additionalProperties": {
       "type": "integer"
      },
      "title": "Counts",
      "type": "object"
     },
     "notes": {
      "items": {
       "$ref": "#/components/schemas/CaptureOut"
      },
      "title": "Notes",
      "type": "array"
     },
     "status": {
      "title": "Status",
      "type": "string"
     }
    },
    "required": [
     "status"
    ],
    "title": "CaptureQueueOut",
    "type": "object"
   },
   "CaptureUpdate": {
    "description": "PATCH /api/notes/{id} \u2014 v1 api_note_update fields, all optional.",
    "properties": {
     "processing_notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Processing Notes"
     },
     "status": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Status"
     },
     "text": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Text"
     },
     "transcript": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Transcript"
     }
    },
    "title": "CaptureUpdate",
    "type": "object"
   },
   "ChangelogEntry": {
    "properties": {
     "date": {
      "title": "Date",
      "type": "string"
     },
     "note": {
      "title": "Note",
      "type": "string"
     },
     "version": {
      "title": "Version",
      "type": "string"
     }
    },
    "required": [
     "version",
     "date",
     "note"
    ],
    "title": "ChangelogEntry",
    "type": "object"
   },
   "CommentOut": {
    "properties": {
     "audio_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Audio Path"
     },
     "body": {
      "default": "",
      "title": "Body",
      "type": "string"
     },
     "captured_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Captured At"
     },
     "comment_date": {
      "anyOf": [
       {
        "format": "date",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Comment Date"
     },
     "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "is_primary_for_scope": {
      "default": true,
      "title": "Is Primary For Scope",
      "type": "boolean"
     },
     "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
     },
     "other_targets": {
      "items": {
       "$ref": "#/components/schemas/TargetOut"
      },
      "title": "Other Targets",
      "type": "array"
     },
     "page_context": {
      "default": "",
      "title": "Page Context",
      "type": "string"
     },
     "photos": {
      "items": {
       "type": "string"
      },
      "title": "Photos",
      "type": "array"
     },
     "primary": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/TargetOut"
       },
       {
        "type": "null"
       }
      ]
     },
     "transcript": {
      "default": "",
      "title": "Transcript",
      "type": "string"
     }
    },
    "required": [
     "id",
     "created_at"
    ],
    "title": "CommentOut",
    "type": "object"
   },
   "CommentTargetsOut": {
    "properties": {
     "targets": {
      "items": {
       "$ref": "#/components/schemas/TargetOut"
      },
      "title": "Targets",
      "type": "array"
     }
    },
    "title": "CommentTargetsOut",
    "type": "object"
   },
   "DetachOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "merged_into": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Merged Into"
     },
     "ok": {
      "title": "Ok",
      "type": "boolean"
     }
    },
    "required": [
     "ok",
     "id"
    ],
    "title": "DetachOut",
    "type": "object"
   },
   "EditFieldBody": {
    "description": "``{\"field\": \"name\", \"value\": ...}`` \u2014 value's type depends on the\nfield spec (text/int/float/select/fk); the service coerces + validates.",
    "properties": {
     "field": {
      "title": "Field",
      "type": "string"
     },
     "value": {
      "title": "Value"
     }
    },
    "required": [
     "field"
    ],
    "title": "EditFieldBody",
    "type": "object"
   },
   "EntityTimelineOut": {
    "description": "GET /api/timeline/{entity_type}/{entity_id}.",
    "properties": {
     "comments": {
      "items": {
       "$ref": "#/components/schemas/CommentOut"
      },
      "title": "Comments",
      "type": "array"
     },
     "entity_id": {
      "title": "Entity Id",
      "type": "integer"
     },
     "entity_type": {
      "title": "Entity Type",
      "type": "string"
     },
     "label": {
      "default": "",
      "title": "Label",
      "type": "string"
     },
     "log_entries": {
      "items": {
       "$ref": "#/components/schemas/ActivityEntryOut"
      },
      "title": "Log Entries",
      "type": "array"
     },
     "show_archived": {
      "default": false,
      "title": "Show Archived",
      "type": "boolean"
     },
     "view": {
      "title": "View",
      "type": "string"
     }
    },
    "required": [
     "entity_type",
     "entity_id",
     "view"
    ],
    "title": "EntityTimelineOut",
    "type": "object"
   },
   "FeaturedImageOut": {
    "properties": {
     "entity_id": {
      "title": "Entity Id",
      "type": "integer"
     },
     "entity_type": {
      "title": "Entity Type",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     }
    },
    "required": [
     "entity_type",
     "entity_id"
    ],
    "title": "FeaturedImageOut",
    "type": "object"
   },
   "HTTPValidationError": {
    "properties": {
     "detail": {
      "items": {
       "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
     }
    },
    "title": "HTTPValidationError",
    "type": "object"
   },
   "HealthOut": {
    "properties": {
     "ok": {
      "title": "Ok",
      "type": "boolean"
     }
    },
    "required": [
     "ok"
    ],
    "title": "HealthOut",
    "type": "object"
   },
   "IconSpec": {
    "description": "v1 species_icon() shape: emoji char OR svg symbol id.",
    "properties": {
     "char": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Char"
     },
     "id": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Id"
     },
     "type": {
      "enum": [
       "emoji",
       "svg"
      ],
      "title": "Type",
      "type": "string"
     }
    },
    "required": [
     "type"
    ],
    "title": "IconSpec",
    "type": "object"
   },
   "InferredTargetsOut": {
    "properties": {
     "targets": {
      "items": {
       "$ref": "#/components/schemas/TargetOut"
      },
      "title": "Targets",
      "type": "array"
     }
    },
    "title": "InferredTargetsOut",
    "type": "object"
   },
   "LayoutArea": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "length_ft": {
      "title": "Length Ft",
      "type": "number"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     },
     "sketch_rotation": {
      "default": 0,
      "title": "Sketch Rotation",
      "type": "integer"
     },
     "width_ft": {
      "title": "Width Ft",
      "type": "number"
     }
    },
    "required": [
     "id",
     "name",
     "length_ft",
     "width_ft"
    ],
    "title": "LayoutArea",
    "type": "object"
   },
   "LayoutOut": {
    "properties": {
     "L": {
      "title": "L",
      "type": "number"
     },
     "W": {
      "title": "W",
      "type": "number"
     },
     "area": {
      "$ref": "#/components/schemas/LayoutArea"
     },
     "compass_rot": {
      "title": "Compass Rot",
      "type": "integer"
     },
     "g": {
      "$ref": "#/components/schemas/SketchGeometryOut"
     },
     "idea_pool_tiles": {
      "items": {
       "$ref": "#/components/schemas/LayoutTile"
      },
      "title": "Idea Pool Tiles",
      "type": "array"
     },
     "inventory_tiles": {
      "items": {
       "$ref": "#/components/schemas/LayoutTile"
      },
      "title": "Inventory Tiles",
      "type": "array"
     },
     "placed_icons": {
      "items": {
       "$ref": "#/components/schemas/PlacedIcon"
      },
      "title": "Placed Icons",
      "type": "array"
     },
     "unplanted_pool_tiles": {
      "items": {
       "$ref": "#/components/schemas/LayoutTile"
      },
      "title": "Unplanted Pool Tiles",
      "type": "array"
     }
    },
    "required": [
     "area",
     "L",
     "W",
     "compass_rot",
     "g"
    ],
    "title": "LayoutOut",
    "type": "object"
   },
   "LayoutTile": {
    "description": "One tray tile (inventory of this area, or a global pool group).\n``count`` is in PLANTS (display); ``inv_plants_each`` is the FIFO queue\nof per-icon plant counts.",
    "properties": {
     "color": {
      "default": "",
      "title": "Color",
      "type": "string"
     },
     "count": {
      "title": "Count",
      "type": "integer"
     },
     "inv_plants_each": {
      "items": {
       "type": "integer"
      },
      "title": "Inv Plants Each",
      "type": "array"
     },
     "plant_id": {
      "title": "Plant Id",
      "type": "integer"
     },
     "ppu": {
      "title": "Ppu",
      "type": "integer"
     },
     "qty_total": {
      "title": "Qty Total",
      "type": "integer"
     },
     "side": {
      "title": "Side",
      "type": "number"
     },
     "source_area_name": {
      "default": "",
      "title": "Source Area Name",
      "type": "string"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "default": "?",
      "title": "Species Name",
      "type": "string"
     },
     "sqft": {
      "title": "Sqft",
      "type": "number"
     },
     "status": {
      "default": "planted",
      "title": "Status",
      "type": "string"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     },
     "variety_name": {
      "default": "",
      "title": "Variety Name",
      "type": "string"
     }
    },
    "required": [
     "plant_id",
     "qty_total",
     "ppu",
     "sqft",
     "side",
     "count"
    ],
    "title": "LayoutTile",
    "type": "object"
   },
   "MarkPlantedRequest": {
    "description": "Existing planting (planting_id) OR new planting (planting_name +\noptional year_id).",
    "properties": {
     "planting_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Id"
     },
     "planting_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Name"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     }
    },
    "title": "MarkPlantedRequest",
    "type": "object"
   },
   "MeOut": {
    "properties": {
     "logout_url": {
      "title": "Logout Url",
      "type": "string"
     },
     "username": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Username"
     }
    },
    "required": [
     "username",
     "logout_url"
    ],
    "title": "MeOut",
    "type": "object"
   },
   "MoveOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "moved_qty": {
      "title": "Moved Qty",
      "type": "integer"
     },
     "new_plant_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "New Plant Id"
     },
     "ok": {
      "title": "Ok",
      "type": "boolean"
     },
     "remaining_qty": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Remaining Qty"
     },
     "split": {
      "title": "Split",
      "type": "boolean"
     },
     "target_area_id": {
      "title": "Target Area Id",
      "type": "integer"
     }
    },
    "required": [
     "ok",
     "id",
     "split",
     "moved_qty",
     "target_area_id"
    ],
    "title": "MoveOut",
    "type": "object"
   },
   "MoveRequest": {
    "properties": {
     "move_qty": {
      "title": "Move Qty",
      "type": "integer"
     },
     "target_area_id": {
      "title": "Target Area Id",
      "type": "integer"
     }
    },
    "required": [
     "target_area_id",
     "move_qty"
    ],
    "title": "MoveRequest",
    "type": "object"
   },
   "OkOut": {
    "properties": {
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     }
    },
    "title": "OkOut",
    "type": "object"
   },
   "OkResult": {
    "properties": {
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     }
    },
    "title": "OkResult",
    "type": "object"
   },
   "OverviewHistoryOut": {
    "properties": {
     "current": {
      "default": "",
      "title": "Current",
      "type": "string"
     },
     "entity_id": {
      "title": "Entity Id",
      "type": "integer"
     },
     "entity_type": {
      "title": "Entity Type",
      "type": "string"
     },
     "label": {
      "default": "",
      "title": "Label",
      "type": "string"
     },
     "versions": {
      "items": {
       "$ref": "#/components/schemas/OverviewVersionOut"
      },
      "title": "Versions",
      "type": "array"
     }
    },
    "required": [
     "entity_type",
     "entity_id"
    ],
    "title": "OverviewHistoryOut",
    "type": "object"
   },
   "OverviewVersionOut": {
    "properties": {
     "author": {
      "default": "user",
      "title": "Author",
      "type": "string"
     },
     "change_note": {
      "default": "",
      "title": "Change Note",
      "type": "string"
     },
     "content": {
      "title": "Content",
      "type": "string"
     },
     "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
     },
     "entity_id": {
      "title": "Entity Id",
      "type": "integer"
     },
     "entity_type": {
      "title": "Entity Type",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     }
    },
    "required": [
     "id",
     "entity_type",
     "entity_id",
     "content",
     "created_at"
    ],
    "title": "OverviewVersionOut",
    "type": "object"
   },
   "ParentPositionOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     },
     "x": {
      "title": "X",
      "type": "number"
     },
     "y": {
      "title": "Y",
      "type": "number"
     }
    },
    "required": [
     "id",
     "x",
     "y"
    ],
    "title": "ParentPositionOut",
    "type": "object"
   },
   "ParentPositionRequest": {
    "description": "v1 POST /api/areas/{id}/parent-position body: center point in feet,\nparent natural-orientation rect-local.",
    "properties": {
     "x": {
      "title": "X",
      "type": "number"
     },
     "y": {
      "title": "Y",
      "type": "number"
     }
    },
    "required": [
     "x",
     "y"
    ],
    "title": "ParentPositionRequest",
    "type": "object"
   },
   "PickerArea": {
    "description": "One node of the compact drill-down picker (v1 area_tree_payload).",
    "properties": {
     "children": {
      "items": {
       "type": "integer"
      },
      "title": "Children",
      "type": "array"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     },
     "path_short": {
      "default": "",
      "title": "Path Short",
      "type": "string"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "PickerArea",
    "type": "object"
   },
   "PlacedIcon": {
    "description": "One canvas icon (a slice of a plant_group, up to ppu plants).",
    "properties": {
     "color": {
      "default": "",
      "title": "Color",
      "type": "string"
     },
     "icon_index": {
      "title": "Icon Index",
      "type": "integer"
     },
     "plant_count": {
      "title": "Plant Count",
      "type": "integer"
     },
     "plant_id": {
      "title": "Plant Id",
      "type": "integer"
     },
     "side": {
      "title": "Side",
      "type": "number"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "default": "",
      "title": "Species Name",
      "type": "string"
     },
     "sqft": {
      "title": "Sqft",
      "type": "number"
     },
     "status": {
      "default": "planted",
      "title": "Status",
      "type": "string"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     },
     "variety_name": {
      "default": "",
      "title": "Variety Name",
      "type": "string"
     },
     "x": {
      "title": "X",
      "type": "number"
     },
     "y": {
      "title": "Y",
      "type": "number"
     }
    },
    "required": [
     "plant_id",
     "icon_index",
     "x",
     "y",
     "side",
     "sqft",
     "plant_count"
    ],
    "title": "PlacedIcon",
    "type": "object"
   },
   "PlantOut": {
    "properties": {
     "area_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Id"
     },
     "area_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Name"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "display_name": {
      "title": "Display Name",
      "type": "string"
     },
     "featured_image_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Featured Image Path"
     },
     "flavor_rating": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Flavor Rating"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "outcome_summary": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Outcome Summary"
     },
     "planting_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Id"
     },
     "planting_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Name"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "positions": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Positions"
     },
     "quantity": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Quantity"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Name"
     },
     "status": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Status"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     },
     "variety_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Name"
     },
     "vigor_rating": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Vigor Rating"
     },
     "would_plant_again": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Would Plant Again"
     },
     "year_value": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Value"
     }
    },
    "required": [
     "id",
     "display_name"
    ],
    "title": "PlantOut",
    "type": "object"
   },
   "PlantRowIn": {
    "description": "One inline plant row on planting create/update (the JSON replacement\nfor v1's plant_qty_N/plant_species_N/... form fields). ``id`` present =\nupdate that plant; absent = insert. On update, existing plants missing\nfrom the submitted array are DELETED (v1 seen_plant_ids semantics).",
    "properties": {
     "area_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Id"
     },
     "id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Id"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "quantity": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Quantity"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     }
    },
    "title": "PlantRowIn",
    "type": "object"
   },
   "PlantSummaryRow": {
    "properties": {
     "qty": {
      "title": "Qty",
      "type": "integer"
     },
     "species": {
      "title": "Species",
      "type": "string"
     },
     "variety": {
      "title": "Variety",
      "type": "string"
     }
    },
    "required": [
     "species",
     "variety",
     "qty"
    ],
    "title": "PlantSummaryRow",
    "type": "object"
   },
   "PlantUpdate": {
    "description": "PATCH body \u2014 only provided fields change. quantity parsing to an int\n<= 0 flips the group to status='removed' and detaches it from its area.",
    "properties": {
     "area_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Id"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "quantity": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Quantity"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     }
    },
    "title": "PlantUpdate",
    "type": "object"
   },
   "PlantingCreate": {
    "properties": {
     "name": {
      "title": "Name",
      "type": "string"
     },
     "new_year": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "New Year"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "plants": {
      "default": [],
      "items": {
       "$ref": "#/components/schemas/PlantRowIn"
      },
      "title": "Plants",
      "type": "array"
     },
     "source": {
      "default": "",
      "title": "Source",
      "type": "string"
     },
     "status": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Status"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     }
    },
    "required": [
     "name"
    ],
    "title": "PlantingCreate",
    "type": "object"
   },
   "PlantingDetailOut": {
    "properties": {
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "featured_image_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Featured Image Path"
     },
     "group_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Group Count"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "plants": {
      "default": [],
      "items": {
       "$ref": "#/components/schemas/PlantOut"
      },
      "title": "Plants",
      "type": "array"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "status": {
      "title": "Status",
      "type": "string"
     },
     "total_qty": {
      "default": 0,
      "title": "Total Qty",
      "type": "integer"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     },
     "year_value": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Value"
     }
    },
    "required": [
     "id",
     "name",
     "status"
    ],
    "title": "PlantingDetailOut",
    "type": "object"
   },
   "PlantingListOut": {
    "properties": {
     "no_year": {
      "items": {
       "$ref": "#/components/schemas/PlantingOut"
      },
      "title": "No Year",
      "type": "array"
     },
     "total_plantings": {
      "title": "Total Plantings",
      "type": "integer"
     },
     "year_groups": {
      "items": {
       "$ref": "#/components/schemas/YearGroupOut"
      },
      "title": "Year Groups",
      "type": "array"
     }
    },
    "required": [
     "year_groups",
     "no_year",
     "total_plantings"
    ],
    "title": "PlantingListOut",
    "type": "object"
   },
   "PlantingOut": {
    "properties": {
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "featured_image_path": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Featured Image Path"
     },
     "group_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Group Count"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "status": {
      "title": "Status",
      "type": "string"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     },
     "year_value": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Value"
     }
    },
    "required": [
     "id",
     "name",
     "status"
    ],
    "title": "PlantingOut",
    "type": "object"
   },
   "PlantingPickerOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "year_value": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Value"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "PlantingPickerOut",
    "type": "object"
   },
   "PlantingRef": {
    "description": "A planting growing this species (species detail).",
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "year": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "PlantingRef",
    "type": "object"
   },
   "PlantingUpdate": {
    "description": "PATCH body \u2014 only provided fields change. ``plants`` (when provided)\nis the FULL row set; missing existing plants are deleted.",
    "properties": {
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "new_year": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "New Year"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "plants": {
      "anyOf": [
       {
        "items": {
         "$ref": "#/components/schemas/PlantRowIn"
        },
        "type": "array"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants"
     },
     "source": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Source"
     },
     "status": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Status"
     },
     "year_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year Id"
     }
    },
    "title": "PlantingUpdate",
    "type": "object"
   },
   "PoolPlantCreate": {
    "description": "POST /api/plants \u2014 create straight into the unplanted/idea pool\n(no planting, no area \u2014 that's the point).",
    "properties": {
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "quantity": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "default": "1",
      "title": "Quantity"
     },
     "source": {
      "default": "",
      "title": "Source",
      "type": "string"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "status": {
      "default": "unplanted",
      "title": "Status",
      "type": "string"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     }
    },
    "title": "PoolPlantCreate",
    "type": "object"
   },
   "PoolStatusRequest": {
    "properties": {
     "status": {
      "title": "Status",
      "type": "string"
     }
    },
    "required": [
     "status"
    ],
    "title": "PoolStatusRequest",
    "type": "object"
   },
   "PoolsOut": {
    "properties": {
     "ideas": {
      "items": {
       "$ref": "#/components/schemas/PlantOut"
      },
      "title": "Ideas",
      "type": "array"
     },
     "plantings": {
      "items": {
       "$ref": "#/components/schemas/PlantingPickerOut"
      },
      "title": "Plantings",
      "type": "array"
     },
     "unplanted": {
      "items": {
       "$ref": "#/components/schemas/PlantOut"
      },
      "title": "Unplanted",
      "type": "array"
     }
    },
    "required": [
     "unplanted",
     "ideas",
     "plantings"
    ],
    "title": "PoolsOut",
    "type": "object"
   },
   "Position": {
    "properties": {
     "x": {
      "title": "X",
      "type": "number"
     },
     "y": {
      "title": "Y",
      "type": "number"
     }
    },
    "required": [
     "x",
     "y"
    ],
    "title": "Position",
    "type": "object"
   },
   "PositionsSaveOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     },
     "saved": {
      "title": "Saved",
      "type": "integer"
     }
    },
    "required": [
     "id",
     "saved"
    ],
    "title": "PositionsSaveOut",
    "type": "object"
   },
   "PositionsSaveRequest": {
    "description": "v1 POST /api/plants/{id}/positions body. Entries are loosely typed on\npurpose: v1 silently skipped non-dict / unparseable items, and the\nservice preserves that.",
    "properties": {
     "positions": {
      "items": {},
      "title": "Positions",
      "type": "array"
     }
    },
    "required": [
     "positions"
    ],
    "title": "PositionsSaveRequest",
    "type": "object"
   },
   "ReorderRequest": {
    "description": "v1 POST /areas/reorder body.",
    "properties": {
     "area_id": {
      "title": "Area Id",
      "type": "integer"
     },
     "new_index": {
      "title": "New Index",
      "type": "integer"
     },
     "parent_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Parent Id"
     }
    },
    "required": [
     "area_id",
     "new_index"
    ],
    "title": "ReorderRequest",
    "type": "object"
   },
   "ResolvedPosition": {
    "description": "One rendered sketch icon (v1 tuple (x, y, plants_in_icon, sqft_per_icon)).",
    "properties": {
     "plant_count": {
      "title": "Plant Count",
      "type": "integer"
     },
     "sqft": {
      "title": "Sqft",
      "type": "number"
     },
     "x": {
      "title": "X",
      "type": "number"
     },
     "y": {
      "title": "Y",
      "type": "number"
     }
    },
    "required": [
     "x",
     "y",
     "plant_count",
     "sqft"
    ],
    "title": "ResolvedPosition",
    "type": "object"
   },
   "SketchChild": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "length_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Length Ft"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "resolved_x": {
      "title": "Resolved X",
      "type": "number"
     },
     "resolved_y": {
      "title": "Resolved Y",
      "type": "number"
     },
     "short_name": {
      "default": "",
      "title": "Short Name",
      "type": "string"
     },
     "sketch_rotation": {
      "default": 0,
      "title": "Sketch Rotation",
      "type": "integer"
     },
     "width_ft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "default": 0,
      "title": "Width Ft"
     }
    },
    "required": [
     "id",
     "name",
     "resolved_x",
     "resolved_y"
    ],
    "title": "SketchChild",
    "type": "object"
   },
   "SketchGeometryOut": {
    "description": "Output of sketch_geometry() \u2014 SVG viewBox + centered rect + rotation.",
    "properties": {
     "cx": {
      "title": "Cx",
      "type": "number"
     },
     "cy": {
      "title": "Cy",
      "type": "number"
     },
     "pad": {
      "title": "Pad",
      "type": "number"
     },
     "rect_h": {
      "title": "Rect H",
      "type": "number"
     },
     "rect_w": {
      "title": "Rect W",
      "type": "number"
     },
     "rect_x": {
      "title": "Rect X",
      "type": "number"
     },
     "rect_y": {
      "title": "Rect Y",
      "type": "number"
     },
     "rotation": {
      "title": "Rotation",
      "type": "integer"
     },
     "vb_h": {
      "title": "Vb H",
      "type": "number"
     },
     "vb_w": {
      "title": "Vb W",
      "type": "number"
     }
    },
    "required": [
     "vb_w",
     "vb_h",
     "cx",
     "cy",
     "rect_x",
     "rect_y",
     "rect_w",
     "rect_h",
     "pad",
     "rotation"
    ],
    "title": "SketchGeometryOut",
    "type": "object"
   },
   "SketchPlant": {
    "properties": {
     "color": {
      "default": "",
      "title": "Color",
      "type": "string"
     },
     "plant_id": {
      "title": "Plant Id",
      "type": "integer"
     },
     "positions_resolved": {
      "items": {
       "$ref": "#/components/schemas/ResolvedPosition"
      },
      "title": "Positions Resolved",
      "type": "array"
     },
     "quantity": {
      "default": "",
      "title": "Quantity",
      "type": "string"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "default": "",
      "title": "Species Name",
      "type": "string"
     },
     "status": {
      "default": "planted",
      "title": "Status",
      "type": "string"
     },
     "variety_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Id"
     },
     "variety_name": {
      "default": "",
      "title": "Variety Name",
      "type": "string"
     }
    },
    "required": [
     "plant_id"
    ],
    "title": "SketchPlant",
    "type": "object"
   },
   "SpacingDefault": {
    "properties": {
     "plants_per_unit": {
      "title": "Plants Per Unit",
      "type": "integer"
     },
     "space_per_unit_sqft": {
      "title": "Space Per Unit Sqft",
      "type": "number"
     }
    },
    "required": [
     "plants_per_unit",
     "space_per_unit_sqft"
    ],
    "title": "SpacingDefault",
    "type": "object"
   },
   "SpacingUpdate": {
    "description": "POST .../spacing body. For species, blank resets to (1, 1.0); for\nvarieties, blank clears the override (inherit species).",
    "properties": {
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     }
    },
    "title": "SpacingUpdate",
    "type": "object"
   },
   "SpeciesCount": {
    "properties": {
     "count": {
      "title": "Count",
      "type": "integer"
     },
     "name": {
      "title": "Name",
      "type": "string"
     }
    },
    "required": [
     "name",
     "count"
    ],
    "title": "SpeciesCount",
    "type": "object"
   },
   "SpeciesCreate": {
    "properties": {
     "common_name": {
      "default": "",
      "title": "Common Name",
      "type": "string"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "primary_function": {
      "default": "edible",
      "title": "Primary Function",
      "type": "string"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "type": {
      "default": "plant",
      "title": "Type",
      "type": "string"
     }
    },
    "required": [
     "name"
    ],
    "title": "SpeciesCreate",
    "type": "object"
   },
   "SpeciesCreateResult": {
    "description": "POST /species result \u2014 ``created`` is False on a name-dedupe hit.",
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "common_name": {
      "default": "",
      "title": "Common Name",
      "type": "string"
     },
     "created": {
      "title": "Created",
      "type": "boolean"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "primary_function": {
      "title": "Primary Function",
      "type": "string"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "type": {
      "title": "Type",
      "type": "string"
     },
     "variety_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Count"
     }
    },
    "required": [
     "id",
     "name",
     "type",
     "primary_function",
     "icon",
     "color",
     "created"
    ],
    "title": "SpeciesCreateResult",
    "type": "object"
   },
   "SpeciesDetail": {
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "common_name": {
      "default": "",
      "title": "Common Name",
      "type": "string"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "title": "Plant Count",
      "type": "integer"
     },
     "plantings": {
      "items": {
       "$ref": "#/components/schemas/PlantingRef"
      },
      "title": "Plantings",
      "type": "array"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "primary_function": {
      "title": "Primary Function",
      "type": "string"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "type": {
      "title": "Type",
      "type": "string"
     },
     "varieties": {
      "items": {
       "$ref": "#/components/schemas/VarietyOut"
      },
      "title": "Varieties",
      "type": "array"
     },
     "variety_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Count"
     }
    },
    "required": [
     "id",
     "name",
     "type",
     "primary_function",
     "icon",
     "color",
     "plant_count",
     "varieties",
     "plantings"
    ],
    "title": "SpeciesDetail",
    "type": "object"
   },
   "SpeciesOut": {
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "common_name": {
      "default": "",
      "title": "Common Name",
      "type": "string"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "primary_function": {
      "title": "Primary Function",
      "type": "string"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "type": {
      "title": "Type",
      "type": "string"
     },
     "variety_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Variety Count"
     }
    },
    "required": [
     "id",
     "name",
     "type",
     "primary_function",
     "icon",
     "color"
    ],
    "title": "SpeciesOut",
    "type": "object"
   },
   "SpeciesPatch": {
    "description": "PATCH body \u2014 only fields the client actually sent are applied\n(routers pass model_dump(exclude_unset=True)).",
    "properties": {
     "common_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Common Name"
     },
     "description": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Description"
     },
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "primary_function": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Primary Function"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "type": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Type"
     }
    },
    "title": "SpeciesPatch",
    "type": "object"
   },
   "StationAreasResult": {
    "properties": {
     "area_ids": {
      "items": {
       "type": "integer"
      },
      "title": "Area Ids",
      "type": "array"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     }
    },
    "required": [
     "area_ids"
    ],
    "title": "StationAreasResult",
    "type": "object"
   },
   "StationAreasSet": {
    "description": "PUT /api/stations/{id}/areas body \u2014 full replace of the M2M set.",
    "properties": {
     "area_ids": {
      "items": {
       "type": "integer"
      },
      "title": "Area Ids",
      "type": "array"
     }
    },
    "required": [
     "area_ids"
    ],
    "title": "StationAreasSet",
    "type": "object"
   },
   "StationCreate": {
    "properties": {
     "area_ids": {
      "default": [],
      "items": {
       "type": "integer"
      },
      "title": "Area Ids",
      "type": "array"
     },
     "current_schedule": {
      "default": "",
      "title": "Current Schedule",
      "type": "string"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     }
    },
    "required": [
     "name"
    ],
    "title": "StationCreate",
    "type": "object"
   },
   "StationDetail": {
    "properties": {
     "area_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Count"
     },
     "areas": {
      "items": {
       "$ref": "#/components/schemas/AreaRef"
      },
      "title": "Areas",
      "type": "array"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "current_schedule": {
      "default": "",
      "title": "Current Schedule",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name",
     "areas"
    ],
    "title": "StationDetail",
    "type": "object"
   },
   "StationOut": {
    "properties": {
     "area_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Area Count"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "current_schedule": {
      "default": "",
      "title": "Current Schedule",
      "type": "string"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "StationOut",
    "type": "object"
   },
   "StationPatch": {
    "properties": {
     "current_schedule": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Current Schedule"
     },
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     }
    },
    "title": "StationPatch",
    "type": "object"
   },
   "SupplyCreate": {
    "properties": {
     "category": {
      "default": "",
      "title": "Category",
      "type": "string"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "needed": {
      "default": false,
      "title": "Needed",
      "type": "boolean"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "quantity_needed": {
      "default": "",
      "title": "Quantity Needed",
      "type": "string"
     },
     "quantity_on_hand": {
      "default": "",
      "title": "Quantity On Hand",
      "type": "string"
     }
    },
    "required": [
     "name"
    ],
    "title": "SupplyCreate",
    "type": "object"
   },
   "SupplyOut": {
    "properties": {
     "amount": {
      "default": "",
      "title": "Amount",
      "type": "string"
     },
     "category": {
      "default": "",
      "title": "Category",
      "type": "string"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "needed": {
      "default": false,
      "title": "Needed",
      "type": "boolean"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "quantity_needed": {
      "default": "",
      "title": "Quantity Needed",
      "type": "string"
     },
     "quantity_on_hand": {
      "default": "",
      "title": "Quantity On Hand",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name"
    ],
    "title": "SupplyOut",
    "type": "object"
   },
   "SupplyPatch": {
    "properties": {
     "category": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Category"
     },
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "needed": {
      "anyOf": [
       {
        "type": "boolean"
       },
       {
        "type": "null"
       }
      ],
      "title": "Needed"
     },
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "quantity_needed": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Quantity Needed"
     },
     "quantity_on_hand": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Quantity On Hand"
     }
    },
    "title": "SupplyPatch",
    "type": "object"
   },
   "TargetOut": {
    "description": "A labeled target chip.",
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_primary": {
      "default": false,
      "title": "Is Primary",
      "type": "boolean"
     },
     "label": {
      "default": "",
      "title": "Label",
      "type": "string"
     },
     "short_label": {
      "default": "",
      "title": "Short Label",
      "type": "string"
     },
     "type": {
      "title": "Type",
      "type": "string"
     },
     "url": {
      "default": "",
      "title": "Url",
      "type": "string"
     }
    },
    "required": [
     "type",
     "id"
    ],
    "title": "TargetOut",
    "type": "object"
   },
   "TargetRef": {
    "description": "A bare (type, id) entity reference \u2014 request payloads.",
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "type": {
      "title": "Type",
      "type": "string"
     }
    },
    "required": [
     "type",
     "id"
    ],
    "title": "TargetRef",
    "type": "object"
   },
   "TimelineOut": {
    "description": "GET /api/timeline \u2014 global feed, optionally scoped.",
    "properties": {
     "comments": {
      "items": {
       "$ref": "#/components/schemas/CommentOut"
      },
      "title": "Comments",
      "type": "array"
     },
     "include_children": {
      "default": false,
      "title": "Include Children",
      "type": "boolean"
     },
     "include_related": {
      "default": false,
      "title": "Include Related",
      "type": "boolean"
     },
     "log_entries": {
      "items": {
       "$ref": "#/components/schemas/ActivityEntryOut"
      },
      "title": "Log Entries",
      "type": "array"
     },
     "scope": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/TimelineScopeOut"
       },
       {
        "type": "null"
       }
      ]
     },
     "show_archived": {
      "default": false,
      "title": "Show Archived",
      "type": "boolean"
     },
     "supports_children": {
      "default": false,
      "title": "Supports Children",
      "type": "boolean"
     },
     "view": {
      "title": "View",
      "type": "string"
     }
    },
    "required": [
     "view"
    ],
    "title": "TimelineOut",
    "type": "object"
   },
   "TimelineScopeOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "label": {
      "default": "",
      "title": "Label",
      "type": "string"
     },
     "type": {
      "title": "Type",
      "type": "string"
     }
    },
    "required": [
     "type",
     "id"
    ],
    "title": "TimelineScopeOut",
    "type": "object"
   },
   "TranscriptOut": {
    "properties": {
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "ok": {
      "default": true,
      "title": "Ok",
      "type": "boolean"
     },
     "transcript": {
      "title": "Transcript",
      "type": "string"
     }
    },
    "required": [
     "id",
     "transcript"
    ],
    "title": "TranscriptOut",
    "type": "object"
   },
   "ValidationError": {
    "properties": {
     "loc": {
      "items": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "integer"
        }
       ]
      },
      "title": "Location",
      "type": "array"
     },
     "msg": {
      "title": "Message",
      "type": "string"
     },
     "type": {
      "title": "Error Type",
      "type": "string"
     }
    },
    "required": [
     "loc",
     "msg",
     "type"
    ],
    "title": "ValidationError",
    "type": "object"
   },
   "VarietyCreate": {
    "properties": {
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     }
    },
    "required": [
     "name"
    ],
    "title": "VarietyCreate",
    "type": "object"
   },
   "VarietyCreateResult": {
    "description": "POST /varieties result \u2014 ``created`` is False on a dedupe hit.",
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "created": {
      "title": "Created",
      "type": "boolean"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "effective_plants_per_unit": {
      "title": "Effective Plants Per Unit",
      "type": "integer"
     },
     "effective_space_per_unit_sqft": {
      "title": "Effective Space Per Unit Sqft",
      "type": "number"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Name"
     },
     "species_primary_function": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Primary Function"
     },
     "species_type": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Type"
     }
    },
    "required": [
     "id",
     "name",
     "effective_plants_per_unit",
     "effective_space_per_unit_sqft",
     "icon",
     "color",
     "created"
    ],
    "title": "VarietyCreateResult",
    "type": "object"
   },
   "VarietyDetail": {
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "effective_plants_per_unit": {
      "title": "Effective Plants Per Unit",
      "type": "integer"
     },
     "effective_space_per_unit_sqft": {
      "title": "Effective Space Per Unit Sqft",
      "type": "number"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "title": "Plant Count",
      "type": "integer"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "species_default": {
      "anyOf": [
       {
        "$ref": "#/components/schemas/SpacingDefault"
       },
       {
        "type": "null"
       }
      ]
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Name"
     },
     "species_primary_function": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Primary Function"
     },
     "species_type": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Type"
     }
    },
    "required": [
     "id",
     "name",
     "effective_plants_per_unit",
     "effective_space_per_unit_sqft",
     "icon",
     "color",
     "plant_count"
    ],
    "title": "VarietyDetail",
    "type": "object"
   },
   "VarietyOut": {
    "properties": {
     "color": {
      "title": "Color",
      "type": "string"
     },
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "description": {
      "default": "",
      "title": "Description",
      "type": "string"
     },
     "effective_plants_per_unit": {
      "title": "Effective Plants Per Unit",
      "type": "integer"
     },
     "effective_space_per_unit_sqft": {
      "title": "Effective Space Per Unit Sqft",
      "type": "number"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "icon": {
      "$ref": "#/components/schemas/IconSpec"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     },
     "species_name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Name"
     },
     "species_primary_function": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Primary Function"
     },
     "species_type": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Type"
     }
    },
    "required": [
     "id",
     "name",
     "effective_plants_per_unit",
     "effective_space_per_unit_sqft",
     "icon",
     "color"
    ],
    "title": "VarietyOut",
    "type": "object"
   },
   "VarietyPatch": {
    "properties": {
     "description": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Description"
     },
     "name": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Name"
     },
     "plants_per_unit": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plants Per Unit"
     },
     "space_per_unit_sqft": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "number"
       },
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Space Per Unit Sqft"
     },
     "species_id": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Species Id"
     }
    },
    "title": "VarietyPatch",
    "type": "object"
   },
   "VersionOut": {
    "properties": {
     "changelog": {
      "items": {
       "$ref": "#/components/schemas/ChangelogEntry"
      },
      "title": "Changelog",
      "type": "array"
     },
     "version": {
      "title": "Version",
      "type": "string"
     }
    },
    "required": [
     "version",
     "changelog"
    ],
    "title": "VersionOut",
    "type": "object"
   },
   "YearCreate": {
    "properties": {
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "year": {
      "title": "Year",
      "type": "integer"
     }
    },
    "required": [
     "year"
    ],
    "title": "YearCreate",
    "type": "object"
   },
   "YearDetail": {
    "properties": {
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "planting_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Count"
     },
     "plantings": {
      "items": {
       "$ref": "#/components/schemas/YearPlantingRef"
      },
      "title": "Plantings",
      "type": "array"
     },
     "year": {
      "title": "Year",
      "type": "integer"
     }
    },
    "required": [
     "id",
     "year",
     "plantings"
    ],
    "title": "YearDetail",
    "type": "object"
   },
   "YearGroupOut": {
    "properties": {
     "plantings": {
      "items": {
       "$ref": "#/components/schemas/PlantingOut"
      },
      "title": "Plantings",
      "type": "array"
     },
     "year": {
      "title": "Year",
      "type": "integer"
     }
    },
    "required": [
     "year",
     "plantings"
    ],
    "title": "YearGroupOut",
    "type": "object"
   },
   "YearOut": {
    "properties": {
     "created_at": {
      "anyOf": [
       {
        "format": "date-time",
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Created At"
     },
     "featured_image_path": {
      "default": "",
      "title": "Featured Image Path",
      "type": "string"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "notes": {
      "default": "",
      "title": "Notes",
      "type": "string"
     },
     "plant_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Plant Count"
     },
     "planting_count": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Planting Count"
     },
     "year": {
      "title": "Year",
      "type": "integer"
     }
    },
    "required": [
     "id",
     "year"
    ],
    "title": "YearOut",
    "type": "object"
   },
   "YearPatch": {
    "properties": {
     "notes": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "Notes"
     },
     "year": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Year"
     }
    },
    "title": "YearPatch",
    "type": "object"
   },
   "YearPlantingRef": {
    "description": "A planting within a year (year detail), with v1's per-planting\ngroup/plant counts.",
    "properties": {
     "group_count": {
      "title": "Group Count",
      "type": "integer"
     },
     "id": {
      "title": "Id",
      "type": "integer"
     },
     "is_archived": {
      "default": false,
      "title": "Is Archived",
      "type": "boolean"
     },
     "name": {
      "title": "Name",
      "type": "string"
     },
     "plant_count": {
      "title": "Plant Count",
      "type": "integer"
     },
     "source": {
      "default": "",
      "title": "Source",
      "type": "string"
     },
     "status": {
      "default": "planted",
      "title": "Status",
      "type": "string"
     }
    },
    "required": [
     "id",
     "name",
     "group_count",
     "plant_count"
    ],
    "title": "YearPlantingRef",
    "type": "object"
   }
  }
 },
 "info": {
  "title": "Garden",
  "version": "2.0.0-dev.11"
 },
 "openapi": "3.1.0",
 "paths": {
  "/api/archive/{entity_type}/{entity_id}": {
   "post": {
    "description": "Archive an entity (with the v1 down-cascades: planting\u2192plants,\narea\u2192descendant areas, species\u2192varieties; plant archive may up-cascade\nto its planting).",
    "operationId": "archive_api_archive__entity_type___entity_id__post",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Archive Api Archive  Entity Type   Entity Id  Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Archive",
    "tags": [
     "archive"
    ]
   }
  },
  "/api/areas": {
   "get": {
    "description": "Area tree (with subtree plant counts + species summaries) + flat\npicker options + compact drill-down picker payload.",
    "operationId": "areas_index_api_areas_get",
    "parameters": [
     {
      "in": "query",
      "name": "include_archived",
      "required": false,
      "schema": {
       "default": false,
       "title": "Include Archived",
       "type": "boolean"
      }
     },
     {
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
       "default": "planted",
       "title": "Status",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AreasIndexOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Areas Index",
    "tags": [
     "areas"
    ]
   },
   "post": {
    "operationId": "area_create_api_areas_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AreaCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AreaOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Create",
    "tags": [
     "areas"
    ]
   }
  },
  "/api/areas/reorder": {
   "post": {
    "description": "Re-parent + resequence siblings (v1 drag-arrange). Cycles rejected\nwith error code ``area_cycle_rejected``.",
    "operationId": "area_reorder_api_areas_reorder_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ReorderRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Reorder",
    "tags": [
     "areas"
    ]
   }
  },
  "/api/areas/{area_id}": {
   "delete": {
    "description": "Recursive delete: descendants removed, plants unlinked (never deleted).",
    "operationId": "area_delete_api_areas__area_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "area_id",
      "required": true,
      "schema": {
       "title": "Area Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AreaDeleteOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Delete",
    "tags": [
     "areas"
    ]
   },
   "get": {
    "description": "Area + breadcrumbs + enriched child summaries + direct plants +\nsketch payload (geometry, resolved plant positions, child positions).",
    "operationId": "area_detail_api_areas__area_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "area_id",
      "required": true,
      "schema": {
       "title": "Area Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
       "default": "planted",
       "title": "Status",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "include_archived",
      "required": false,
      "schema": {
       "default": false,
       "title": "Include Archived",
       "type": "boolean"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AreaDetailOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Detail",
    "tags": [
     "areas"
    ]
   },
   "patch": {
    "description": "Partial update (name/notes/parent/dims/rotation/environment texts).\nOnly fields present in the body are applied.",
    "operationId": "area_update_api_areas__area_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "area_id",
      "required": true,
      "schema": {
       "title": "Area Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AreaUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AreaOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Update",
    "tags": [
     "areas"
    ]
   }
  },
  "/api/areas/{area_id}/layout": {
   "get": {
    "description": "Layout-mode payload: axis-aligned geometry (compass_rot carries the\nreal orientation), placed icons (strict positions, no auto-fill),\nper-group inventory tiles, and the global Unplanted/Idea pool tiles.\nErrors: ``area_not_found`` (404), ``area_no_dimensions`` (400).",
    "operationId": "area_layout_api_areas__area_id__layout_get",
    "parameters": [
     {
      "in": "path",
      "name": "area_id",
      "required": true,
      "schema": {
       "title": "Area Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/LayoutOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Layout",
    "tags": [
     "layout"
    ]
   }
  },
  "/api/areas/{area_id}/parent-position": {
   "post": {
    "description": "Save the child's center position within its parent (feet, clamped).",
    "operationId": "area_parent_position_api_areas__area_id__parent_position_post",
    "parameters": [
     {
      "in": "path",
      "name": "area_id",
      "required": true,
      "schema": {
       "title": "Area Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ParentPositionRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ParentPositionOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Area Parent Position",
    "tags": [
     "areas"
    ]
   }
  },
  "/api/artifacts": {
   "get": {
    "operationId": "list_artifacts_api_artifacts_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ArtifactListOut"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "List Artifacts",
    "tags": [
     "artifacts"
    ]
   },
   "post": {
    "operationId": "create_artifact_api_artifacts_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ArtifactCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Artifact Api Artifacts Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Artifact",
    "tags": [
     "artifacts"
    ]
   }
  },
  "/api/artifacts/{artifact_id}": {
   "delete": {
    "operationId": "delete_artifact_api_artifacts__artifact_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "artifact_id",
      "required": true,
      "schema": {
       "title": "Artifact Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Delete Artifact Api Artifacts  Artifact Id  Delete",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Delete Artifact",
    "tags": [
     "artifacts"
    ]
   },
   "get": {
    "operationId": "get_artifact_api_artifacts__artifact_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "artifact_id",
      "required": true,
      "schema": {
       "title": "Artifact Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ArtifactDetailOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Artifact",
    "tags": [
     "artifacts"
    ]
   }
  },
  "/api/catalog/species": {
   "get": {
    "operationId": "species_list_api_catalog_species_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "type",
      "required": false,
      "schema": {
       "default": "",
       "title": "Type",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "$ref": "#/components/schemas/SpeciesOut"
         },
         "title": "Response Species List Api Catalog Species Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Species List",
    "tags": [
     "catalog"
    ]
   },
   "post": {
    "operationId": "species_create_api_catalog_species_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SpeciesCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SpeciesCreateResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Species Create",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/catalog/species/{species_id}": {
   "get": {
    "operationId": "species_detail_api_catalog_species__species_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "species_id",
      "required": true,
      "schema": {
       "title": "Species Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SpeciesDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Species Detail",
    "tags": [
     "catalog"
    ]
   },
   "patch": {
    "operationId": "species_update_api_catalog_species__species_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "species_id",
      "required": true,
      "schema": {
       "title": "Species Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SpeciesPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SpeciesOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Species Update",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/catalog/species/{species_id}/spacing": {
   "post": {
    "operationId": "species_set_spacing_api_catalog_species__species_id__spacing_post",
    "parameters": [
     {
      "in": "path",
      "name": "species_id",
      "required": true,
      "schema": {
       "title": "Species Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SpacingUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SpeciesOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Species Set Spacing",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/catalog/varieties": {
   "get": {
    "operationId": "variety_list_api_catalog_varieties_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "species_id",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "integer"
        },
        {
         "type": "null"
        }
       ],
       "title": "Species Id"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "$ref": "#/components/schemas/VarietyOut"
         },
         "title": "Response Variety List Api Catalog Varieties Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Variety List",
    "tags": [
     "catalog"
    ]
   },
   "post": {
    "operationId": "variety_create_api_catalog_varieties_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/VarietyCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/VarietyCreateResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Variety Create",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/catalog/varieties/{variety_id}": {
   "get": {
    "operationId": "variety_detail_api_catalog_varieties__variety_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "variety_id",
      "required": true,
      "schema": {
       "title": "Variety Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/VarietyDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Variety Detail",
    "tags": [
     "catalog"
    ]
   },
   "patch": {
    "operationId": "variety_update_api_catalog_varieties__variety_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "variety_id",
      "required": true,
      "schema": {
       "title": "Variety Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/VarietyPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/VarietyOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Variety Update",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/catalog/varieties/{variety_id}/spacing": {
   "post": {
    "operationId": "variety_set_spacing_api_catalog_varieties__variety_id__spacing_post",
    "parameters": [
     {
      "in": "path",
      "name": "variety_id",
      "required": true,
      "schema": {
       "title": "Variety Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SpacingUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/VarietyOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Variety Set Spacing",
    "tags": [
     "catalog"
    ]
   }
  },
  "/api/chat/sessions": {
   "get": {
    "operationId": "list_sessions_api_chat_sessions_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "type": "object"
         },
         "title": "Response List Sessions Api Chat Sessions Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "List Sessions",
    "tags": [
     "chat"
    ]
   },
   "post": {
    "operationId": "create_session_api_chat_sessions_post",
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Create Session Api Chat Sessions Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Create Session",
    "tags": [
     "chat"
    ]
   }
  },
  "/api/chat/sessions/{session_id}": {
   "get": {
    "operationId": "get_session_api_chat_sessions__session_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "session_id",
      "required": true,
      "schema": {
       "title": "Session Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Get Session Api Chat Sessions  Session Id  Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Session",
    "tags": [
     "chat"
    ]
   }
  },
  "/api/chat/sessions/{session_id}/end": {
   "post": {
    "operationId": "end_session_api_chat_sessions__session_id__end_post",
    "parameters": [
     {
      "in": "path",
      "name": "session_id",
      "required": true,
      "schema": {
       "title": "Session Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response End Session Api Chat Sessions  Session Id  End Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "End Session",
    "tags": [
     "chat"
    ]
   }
  },
  "/api/chat/sessions/{session_id}/messages": {
   "post": {
    "operationId": "post_message_api_chat_sessions__session_id__messages_post",
    "parameters": [
     {
      "in": "path",
      "name": "session_id",
      "required": true,
      "schema": {
       "title": "Session Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "multipart/form-data": {
       "schema": {
        "$ref": "#/components/schemas/Body_post_message_api_chat_sessions__session_id__messages_post"
       }
      }
     }
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Post Message",
    "tags": [
     "chat"
    ]
   }
  },
  "/api/edit/{entity_type}/{entity_id}": {
   "post": {
    "description": "Generic per-field click-to-edit endpoint. Returns\n``{\"ok\": true, \"value\": <stored>, \"side_effects\": {...}}``.",
    "operationId": "edit_entity_field_api_edit__entity_type___entity_id__post",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/EditFieldBody"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Edit Entity Field Api Edit  Entity Type   Entity Id  Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Edit Entity Field",
    "tags": [
     "edit"
    ]
   }
  },
  "/api/export": {
   "get": {
    "description": "Canonical export of all 17 carried tables (harness-compatible shape:\n{\"meta\": ..., \"tables\": {...rows sorted by id...}}).",
    "operationId": "api_export_api_export_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Api Export Api Export Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Api Export",
    "tags": [
     "export"
    ]
   }
  },
  "/api/export/media-manifest": {
   "get": {
    "description": "sha256 manifest of the media tree (notes/ + artifacts/) under\nDATA_DIR \u2014 same shape as scripts/media_manifest.py output.",
    "operationId": "api_export_media_manifest_api_export_media_manifest_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Api Export Media Manifest Api Export Media Manifest Get",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Api Export Media Manifest",
    "tags": [
     "export"
    ]
   }
  },
  "/api/featured-image/{entity_type}/{entity_id}": {
   "post": {
    "operationId": "set_featured_image_api_featured_image__entity_type___entity_id__post",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "multipart/form-data": {
       "schema": {
        "$ref": "#/components/schemas/Body_set_featured_image_api_featured_image__entity_type___entity_id__post"
       }
      }
     }
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/FeaturedImageOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Set Featured Image",
    "tags": [
     "featured-image"
    ]
   }
  },
  "/api/health": {
   "get": {
    "description": "Public (allowlisted). Reveals liveness only \u2014 no data, no config.",
    "operationId": "health_api_health_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HealthOut"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Health",
    "tags": [
     "meta"
    ]
   }
  },
  "/api/me": {
   "get": {
    "description": "Signed-in identity (Pattern B) + the id-auth logout URL for the UI.",
    "operationId": "me_api_me_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/MeOut"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Me",
    "tags": [
     "meta"
    ]
   }
  },
  "/api/notes": {
   "get": {
    "operationId": "capture_list_api_notes_get",
    "parameters": [
     {
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
       "default": "new",
       "title": "Status",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
       "default": 50,
       "title": "Limit",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "kind",
      "required": false,
      "schema": {
       "default": "",
       "title": "Kind",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CaptureListOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture List",
    "tags": [
     "notes"
    ]
   },
   "post": {
    "operationId": "capture_create_api_notes_post",
    "requestBody": {
     "content": {
      "multipart/form-data": {
       "schema": {
        "$ref": "#/components/schemas/Body_capture_create_api_notes_post"
       }
      }
     }
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CaptureOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture Create",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/comments": {
   "post": {
    "operationId": "comment_create_api_notes_comments_post",
    "requestBody": {
     "content": {
      "multipart/form-data": {
       "schema": {
        "$ref": "#/components/schemas/Body_comment_create_api_notes_comments_post"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CommentOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Create",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/comments/{comment_id}": {
   "delete": {
    "operationId": "comment_delete_api_notes_comments__comment_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "comment_id",
      "required": true,
      "schema": {
       "title": "Comment Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Delete",
    "tags": [
     "notes"
    ]
   },
   "patch": {
    "operationId": "comment_update_api_notes_comments__comment_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "comment_id",
      "required": true,
      "schema": {
       "title": "Comment Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "multipart/form-data": {
       "schema": {
        "$ref": "#/components/schemas/Body_comment_update_api_notes_comments__comment_id__patch"
       }
      }
     }
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CommentOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Update",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/comments/{comment_id}/targets": {
   "get": {
    "operationId": "comment_targets_api_notes_comments__comment_id__targets_get",
    "parameters": [
     {
      "in": "path",
      "name": "comment_id",
      "required": true,
      "schema": {
       "title": "Comment Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CommentTargetsOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Targets",
    "tags": [
     "notes"
    ]
   },
   "post": {
    "operationId": "comment_target_add_api_notes_comments__comment_id__targets_post",
    "parameters": [
     {
      "in": "path",
      "name": "comment_id",
      "required": true,
      "schema": {
       "title": "Comment Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/TargetRef"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CommentTargetsOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Target Add",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/comments/{comment_id}/targets/{target_type}/{target_id}": {
   "delete": {
    "operationId": "comment_target_remove_api_notes_comments__comment_id__targets__target_type___target_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "comment_id",
      "required": true,
      "schema": {
       "title": "Comment Id",
       "type": "integer"
      }
     },
     {
      "in": "path",
      "name": "target_type",
      "required": true,
      "schema": {
       "title": "Target Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "target_id",
      "required": true,
      "schema": {
       "title": "Target Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CommentTargetsOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Comment Target Remove",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/inferred-targets": {
   "get": {
    "description": "Preview the NARROWED inferred-secondaries set for a would-be comment.\n``body`` is optional: mention-gated species/variety/plant links only\nappear once the drafted body text names them.",
    "operationId": "inferred_targets_api_notes_inferred_targets_get",
    "parameters": [
     {
      "in": "query",
      "name": "type",
      "required": true,
      "schema": {
       "title": "Type",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "id",
      "required": true,
      "schema": {
       "title": "Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "date",
      "required": false,
      "schema": {
       "default": "",
       "title": "Date",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "body",
      "required": false,
      "schema": {
       "default": "",
       "title": "Body",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/InferredTargetsOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Inferred Targets",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/queue": {
   "get": {
    "operationId": "capture_queue_api_notes_queue_get",
    "parameters": [
     {
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
       "default": "new",
       "title": "Status",
       "type": "string"
      }
     },
     {
      "in": "query",
      "name": "kind",
      "required": false,
      "schema": {
       "default": "",
       "title": "Kind",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CaptureQueueOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture Queue",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/{note_id}": {
   "delete": {
    "operationId": "capture_delete_api_notes__note_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "note_id",
      "required": true,
      "schema": {
       "title": "Note Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture Delete",
    "tags": [
     "notes"
    ]
   },
   "patch": {
    "operationId": "capture_update_api_notes__note_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "note_id",
      "required": true,
      "schema": {
       "title": "Note Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/CaptureUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CaptureOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture Update",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/notes/{note_id}/transcribe": {
   "post": {
    "description": "AI route (async). Per standards, no DB session is held across the\nawait: session 1 resolves the caller + audio path, then closes; the\nGemini call runs; session 2 stores the transcript.",
    "operationId": "capture_transcribe_api_notes__note_id__transcribe_post",
    "parameters": [
     {
      "in": "path",
      "name": "note_id",
      "required": true,
      "schema": {
       "title": "Note Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/TranscriptOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Capture Transcribe",
    "tags": [
     "notes"
    ]
   }
  },
  "/api/plantings": {
   "get": {
    "operationId": "list_plantings_api_plantings_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantingListOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Plantings",
    "tags": [
     "plantings"
    ]
   },
   "post": {
    "operationId": "create_planting_api_plantings_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PlantingCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantingDetailOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Planting",
    "tags": [
     "plantings"
    ]
   }
  },
  "/api/plantings/{planting_id}": {
   "delete": {
    "operationId": "delete_planting_api_plantings__planting_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "planting_id",
      "required": true,
      "schema": {
       "title": "Planting Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Delete Planting",
    "tags": [
     "plantings"
    ]
   },
   "get": {
    "operationId": "get_planting_api_plantings__planting_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "planting_id",
      "required": true,
      "schema": {
       "title": "Planting Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantingDetailOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Planting",
    "tags": [
     "plantings"
    ]
   },
   "patch": {
    "operationId": "update_planting_api_plantings__planting_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "planting_id",
      "required": true,
      "schema": {
       "title": "Planting Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PlantingUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantingDetailOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Update Planting",
    "tags": [
     "plantings"
    ]
   }
  },
  "/api/plantings/{planting_id}/plants": {
   "post": {
    "operationId": "add_plant_to_planting_api_plantings__planting_id__plants_post",
    "parameters": [
     {
      "in": "path",
      "name": "planting_id",
      "required": true,
      "schema": {
       "title": "Planting Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PlantRowIn"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Add Plant To Planting",
    "tags": [
     "plantings"
    ]
   }
  },
  "/api/plants": {
   "post": {
    "operationId": "create_pool_plant_api_plants_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PoolPlantCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Create Pool Plant",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/pools": {
   "get": {
    "operationId": "list_pools_api_plants_pools_get",
    "parameters": [
     {
      "description": "unplanted | idea (default: both)",
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "description": "unplanted | idea (default: both)",
       "title": "Status"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PoolsOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "List Pools",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}": {
   "delete": {
    "operationId": "delete_plant_api_plants__plant_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Delete Plant",
    "tags": [
     "plants"
    ]
   },
   "get": {
    "operationId": "get_plant_api_plants__plant_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Get Plant",
    "tags": [
     "plants"
    ]
   },
   "patch": {
    "operationId": "update_plant_api_plants__plant_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PlantUpdate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Update Plant",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/attach-to-area": {
   "post": {
    "operationId": "attach_to_area_api_plants__plant_id__attach_to_area_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AttachRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AttachOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Attach To Area",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/detach-from-area": {
   "post": {
    "operationId": "detach_from_area_api_plants__plant_id__detach_from_area_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DetachOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Detach From Area",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/mark-planted": {
   "post": {
    "operationId": "mark_planted_api_plants__plant_id__mark_planted_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/MarkPlantedRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Mark Planted",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/move": {
   "post": {
    "operationId": "move_plant_api_plants__plant_id__move_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/MoveRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/MoveOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Move Plant",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/pool-status": {
   "post": {
    "operationId": "set_pool_status_api_plants__plant_id__pool_status_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PoolStatusRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PlantOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Set Pool Status",
    "tags": [
     "plants"
    ]
   }
  },
  "/api/plants/{plant_id}/positions": {
   "post": {
    "description": "Save a plant_group's icon positions (feet, rect-local). Invalid\nentries skipped, coordinates clamped to the area bounds, list capped at\nthe group's quantity \u2014 exact v1 semantics.",
    "operationId": "plant_set_positions_api_plants__plant_id__positions_post",
    "parameters": [
     {
      "in": "path",
      "name": "plant_id",
      "required": true,
      "schema": {
       "title": "Plant Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/PositionsSaveRequest"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PositionsSaveOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Plant Set Positions",
    "tags": [
     "layout"
    ]
   }
  },
  "/api/sse-heartbeat": {
   "get": {
    "description": "Streams one event per second for 10 seconds.\n\nVerification: `curl -N` through Caddy must show events arriving ~1s\napart. If they arrive in one burst at the end, a proxy is buffering\nand the streaming-chat contract is broken \u2014 fix Caddy/encoding first.",
    "operationId": "sse_heartbeat_api_sse_heartbeat_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Sse Heartbeat",
    "tags": [
     "meta"
    ]
   }
  },
  "/api/stations": {
   "get": {
    "operationId": "station_list_api_stations_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "$ref": "#/components/schemas/StationOut"
         },
         "title": "Response Station List Api Stations Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station List",
    "tags": [
     "inventory"
    ]
   },
   "post": {
    "operationId": "station_create_api_stations_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/StationCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/StationDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station Create",
    "tags": [
     "inventory"
    ]
   }
  },
  "/api/stations/{station_id}": {
   "delete": {
    "operationId": "station_delete_api_stations__station_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "station_id",
      "required": true,
      "schema": {
       "title": "Station Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station Delete",
    "tags": [
     "inventory"
    ]
   },
   "get": {
    "operationId": "station_detail_api_stations__station_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "station_id",
      "required": true,
      "schema": {
       "title": "Station Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/StationDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station Detail",
    "tags": [
     "inventory"
    ]
   },
   "patch": {
    "operationId": "station_update_api_stations__station_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "station_id",
      "required": true,
      "schema": {
       "title": "Station Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/StationPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/StationDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station Update",
    "tags": [
     "inventory"
    ]
   }
  },
  "/api/stations/{station_id}/areas": {
   "put": {
    "operationId": "station_set_areas_api_stations__station_id__areas_put",
    "parameters": [
     {
      "in": "path",
      "name": "station_id",
      "required": true,
      "schema": {
       "title": "Station Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/StationAreasSet"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/StationAreasResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Station Set Areas",
    "tags": [
     "inventory"
    ]
   }
  },
  "/api/supplies": {
   "get": {
    "operationId": "supply_list_api_supplies_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "$ref": "#/components/schemas/SupplyOut"
         },
         "title": "Response Supply List Api Supplies Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Supply List",
    "tags": [
     "inventory"
    ]
   },
   "post": {
    "operationId": "supply_create_api_supplies_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SupplyCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SupplyOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Supply Create",
    "tags": [
     "inventory"
    ]
   }
  },
  "/api/supplies/{supply_id}": {
   "delete": {
    "operationId": "supply_delete_api_supplies__supply_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "supply_id",
      "required": true,
      "schema": {
       "title": "Supply Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Supply Delete",
    "tags": [
     "inventory"
    ]
   },
   "get": {
    "operationId": "supply_detail_api_supplies__supply_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "supply_id",
      "required": true,
      "schema": {
       "title": "Supply Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SupplyOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Supply Detail",
    "tags": [
     "inventory"
    ]
   },
   "patch": {
    "operationId": "supply_update_api_supplies__supply_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "supply_id",
      "required": true,
      "schema": {
       "title": "Supply Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/SupplyPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/SupplyOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Supply Update",
    "tags": [
     "inventory"
    ]
   }
  },
  "/api/timeline": {
   "get": {
    "operationId": "global_timeline_api_timeline_get",
    "parameters": [
     {
      "in": "query",
      "name": "scope_type",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Scope Type"
      }
     },
     {
      "in": "query",
      "name": "scope_id",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "integer"
        },
        {
         "type": "null"
        }
       ],
       "title": "Scope Id"
      }
     },
     {
      "in": "query",
      "name": "children",
      "required": false,
      "schema": {
       "anyOf": [
        {
         "type": "integer"
        },
        {
         "type": "null"
        }
       ],
       "title": "Children"
      }
     },
     {
      "in": "query",
      "name": "related",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Related",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "view",
      "required": false,
      "schema": {
       "default": "notes",
       "title": "View",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/TimelineOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Global Timeline",
    "tags": [
     "timeline"
    ]
   }
  },
  "/api/timeline/overview-history/{entity_type}/{entity_id}": {
   "get": {
    "operationId": "overview_history_api_timeline_overview_history__entity_type___entity_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OverviewHistoryOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Overview History",
    "tags": [
     "timeline"
    ]
   }
  },
  "/api/timeline/{entity_type}/{entity_id}": {
   "get": {
    "operationId": "entity_timeline_api_timeline__entity_type___entity_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "view",
      "required": false,
      "schema": {
       "default": "notes",
       "title": "View",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EntityTimelineOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Entity Timeline",
    "tags": [
     "timeline"
    ]
   }
  },
  "/api/unarchive/{entity_type}/{entity_id}": {
   "post": {
    "description": "Unarchive a single entity (no cascades \u2014 v1 semantics).",
    "operationId": "unarchive_api_unarchive__entity_type___entity_id__post",
    "parameters": [
     {
      "in": "path",
      "name": "entity_type",
      "required": true,
      "schema": {
       "title": "Entity Type",
       "type": "string"
      }
     },
     {
      "in": "path",
      "name": "entity_id",
      "required": true,
      "schema": {
       "title": "Entity Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "title": "Response Unarchive Api Unarchive  Entity Type   Entity Id  Post",
         "type": "object"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Unarchive",
    "tags": [
     "archive"
    ]
   }
  },
  "/api/version": {
   "get": {
    "operationId": "version_api_version_get",
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/VersionOut"
        }
       }
      },
      "description": "Successful Response"
     }
    },
    "summary": "Version",
    "tags": [
     "meta"
    ]
   }
  },
  "/api/years": {
   "get": {
    "operationId": "year_list_api_years_get",
    "parameters": [
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "items": {
          "$ref": "#/components/schemas/YearOut"
         },
         "title": "Response Year List Api Years Get",
         "type": "array"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Year List",
    "tags": [
     "years"
    ]
   },
   "post": {
    "operationId": "year_create_api_years_post",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/YearCreate"
       }
      }
     },
     "required": true
    },
    "responses": {
     "201": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YearOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Year Create",
    "tags": [
     "years"
    ]
   }
  },
  "/api/years/{year_id}": {
   "delete": {
    "operationId": "year_delete_api_years__year_id__delete",
    "parameters": [
     {
      "in": "path",
      "name": "year_id",
      "required": true,
      "schema": {
       "title": "Year Id",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OkResult"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Year Delete",
    "tags": [
     "years"
    ]
   },
   "get": {
    "operationId": "year_detail_api_years__year_id__get",
    "parameters": [
     {
      "in": "path",
      "name": "year_id",
      "required": true,
      "schema": {
       "title": "Year Id",
       "type": "integer"
      }
     },
     {
      "in": "query",
      "name": "archived",
      "required": false,
      "schema": {
       "default": 0,
       "title": "Archived",
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YearDetail"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Year Detail",
    "tags": [
     "years"
    ]
   },
   "patch": {
    "operationId": "year_update_api_years__year_id__patch",
    "parameters": [
     {
      "in": "path",
      "name": "year_id",
      "required": true,
      "schema": {
       "title": "Year Id",
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/YearPatch"
       }
      }
     },
     "required": true
    },
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/YearOut"
        }
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Year Update",
    "tags": [
     "years"
    ]
   }
  },
  "/notes/{rel_path}": {
   "get": {
    "operationId": "serve_note_media_notes__rel_path__get",
    "parameters": [
     {
      "in": "path",
      "name": "rel_path",
      "required": true,
      "schema": {
       "title": "Rel Path",
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {}
       }
      },
      "description": "Successful Response"
     },
     "422": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/HTTPValidationError"
        }
       }
      },
      "description": "Validation Error"
     }
    },
    "summary": "Serve Note Media",
    "tags": [
     "media"
    ]
   }
  }
 }
}