Townlight

Townlight Records API reference

Windows Beta 1 · source reference. The signed Windows x64 beta 1.7.0.1 passed the documented fresh Windows Sandbox checks with synthetic data. This schema describes source contracts. The Windows acceptance summary identifies the installed checks.

Townlight Records 1.8.0.dev2. The HTTP host is Townlight Records 1.8.0.dev2. Component package versions and the host API version are separate identities.

Generated from the actual native inspections-preview composition without application lifespan, migrations or database/network access. It describes route and validation contracts; it does not establish endpoint behavior, individual authorization or installed acceptance. Standalone product applications have separate deployment boundaries.

Machine-readable OpenAPI schema · Operating manual and limits

HTTP operations

GET /admin/coverage-gaps
{
  "tags": [
    "admin"
  ],
  "summary": "Get Coverage Gaps",
  "description": "Identify coverage gaps across jurisdictions, departments, and exemption categories.\n\nReturns:\n- Jurisdictions (state codes) that have no exemption rules\n- Departments with no assigned staff users\n- Exemption categories without any active rules",
  "operationId": "get_coverage_gaps_admin_coverage_gaps_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CoverageGapResponse"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /admin/fee-schedules
{
  "tags": [
    "admin"
  ],
  "summary": "List Fee Schedules",
  "description": "List all fee schedules. Admin only.",
  "operationId": "list_fee_schedules_admin_fee_schedules_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "jurisdiction",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Jurisdiction"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeScheduleRead"
            },
            "title": "Response List Fee Schedules Admin Fee Schedules Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /admin/fee-schedules
{
  "tags": [
    "admin"
  ],
  "summary": "Create Fee Schedule",
  "description": "Create a new fee schedule. Admin only.",
  "operationId": "create_fee_schedule_admin_fee_schedules_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeScheduleCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeScheduleRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /admin/fee-schedules/{schedule_id}
{
  "tags": [
    "admin"
  ],
  "summary": "Update Fee Schedule",
  "description": "Update a fee schedule. Admin only.",
  "operationId": "update_fee_schedule_admin_fee_schedules__schedule_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "schedule_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Schedule Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeScheduleUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeScheduleRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE /admin/fee-schedules/{schedule_id}
{
  "tags": [
    "admin"
  ],
  "summary": "Delete Fee Schedule",
  "description": "Delete a fee schedule. Admin only.",
  "operationId": "delete_fee_schedule_admin_fee_schedules__schedule_id__delete",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "schedule_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Schedule Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /admin/models
{
  "tags": [
    "admin"
  ],
  "summary": "List Models",
  "operationId": "list_models_admin_models_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/OllamaStatus"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /admin/models/registry
{
  "tags": [
    "admin"
  ],
  "summary": "List Model Registry",
  "operationId": "list_model_registry_admin_models_registry_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/ModelRegistryRead"
            },
            "type": "array",
            "title": "Response List Model Registry Admin Models Registry Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /admin/models/registry
{
  "tags": [
    "admin"
  ],
  "summary": "Register Model",
  "operationId": "register_model_admin_models_registry_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ModelRegistryCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ModelRegistryRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /admin/models/registry/{model_id}
{
  "tags": [
    "admin"
  ],
  "summary": "Update Model Registry",
  "operationId": "update_model_registry_admin_models_registry__model_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "model_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Model Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ModelRegistryUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ModelRegistryRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE /admin/models/registry/{model_id}
{
  "tags": [
    "admin"
  ],
  "summary": "Delete Model Registry",
  "operationId": "delete_model_registry_admin_models_registry__model_id__delete",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "model_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Model Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /admin/status
{
  "tags": [
    "admin"
  ],
  "summary": "System Status",
  "operationId": "system_status_admin_status_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SystemStatus"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /admin/users
{
  "tags": [
    "admin"
  ],
  "summary": "List Users",
  "description": "List all users. Admin only.",
  "operationId": "list_users_admin_users_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/UserRead"
            },
            "type": "array",
            "title": "Response List Users Admin Users Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /admin/users
{
  "tags": [
    "admin"
  ],
  "summary": "Create User",
  "description": "Create a new user. Admin only.",
  "operationId": "create_user_admin_users_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AdminUserCreateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AdminUserCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /admin/users/{user_id}
{
  "tags": [
    "admin"
  ],
  "summary": "Update User",
  "description": "Update user fields. Admin only.\n\nGuards against self-demotion: admins cannot change their own role.",
  "operationId": "update_user_admin_users__user_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "user_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "User Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UserUpdateRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AdminUserCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /analytics/operational
{
  "tags": [
    "analytics"
  ],
  "summary": "Get Operational Metrics",
  "operationId": "get_operational_metrics_analytics_operational_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/OperationalMetrics"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /audit/export
{
  "tags": [
    "audit"
  ],
  "summary": "Export Audit Logs",
  "operationId": "export_audit_logs_audit_export_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "format",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "default": "json",
        "title": "Format"
      }
    },
    {
      "name": "start_date",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Start Date"
      }
    },
    {
      "name": "end_date",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "End Date"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /audit/logs
{
  "tags": [
    "audit"
  ],
  "summary": "List Audit Logs",
  "operationId": "list_audit_logs_audit_logs_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "action",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Action"
      }
    },
    {
      "name": "resource_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Resource Type"
      }
    },
    {
      "name": "user_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "uuid"
          },
          {
            "type": "null"
          }
        ],
        "title": "User Id"
      }
    },
    {
      "name": "start_date",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Start Date"
      }
    },
    {
      "name": "end_date",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "End Date"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 200,
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditLogRead"
            },
            "title": "Response List Audit Logs Audit Logs Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /audit/verify
{
  "tags": [
    "audit"
  ],
  "summary": "Verify Audit Chain",
  "operationId": "verify_audit_chain_audit_verify_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AuditChainVerification"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /auth/jwt/login
{
  "tags": [
    "auth"
  ],
  "summary": "Auth:Jwt.Login",
  "operationId": "auth_jwt_login_auth_jwt_login_post",
  "requestBody": {
    "content": {
      "application/x-www-form-urlencoded": {
        "schema": {
          "$ref": "#/components/schemas/Body_auth_jwt_login_auth_jwt_login_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/BearerResponse"
          },
          "example": {
            "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiOTIyMWZmYzktNjQwZi00MzcyLTg2ZDMtY2U2NDJjYmE1NjAzIiwiYXVkIjoiZmFzdGFwaS11c2VyczphdXRoIiwiZXhwIjoxNTcxNTA0MTkzfQ.M10bjOe45I5Ncu_uXvOmVV8QxnL-nZfcH96U90JaocI",
            "token_type": "bearer"
          }
        }
      }
    },
    "400": {
      "description": "Bad Request",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorModel"
          },
          "examples": {
            "LOGIN_BAD_CREDENTIALS": {
              "summary": "Bad credentials or the user is inactive.",
              "value": {
                "detail": "LOGIN_BAD_CREDENTIALS"
              }
            },
            "LOGIN_USER_NOT_VERIFIED": {
              "summary": "The user is not verified.",
              "value": {
                "detail": "LOGIN_USER_NOT_VERIFIED"
              }
            }
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /auth/jwt/logout
{
  "tags": [
    "auth"
  ],
  "summary": "Auth:Jwt.Logout",
  "operationId": "auth_jwt_logout_auth_jwt_logout_post",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "401": {
      "description": "Missing token or inactive user."
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /catalog/connectors
{
  "tags": [
    "catalog"
  ],
  "summary": "List Connectors",
  "operationId": "list_connectors_catalog_connectors_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "domain",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Domain"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /catalog/domains
{
  "tags": [
    "catalog"
  ],
  "summary": "List Domains",
  "operationId": "list_domains_catalog_domains_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /catalog/load
{
  "tags": [
    "catalog"
  ],
  "summary": "Trigger Catalog Load",
  "operationId": "trigger_catalog_load_catalog_load_post",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /catalog/systems
{
  "tags": [
    "catalog"
  ],
  "summary": "List Systems",
  "operationId": "list_systems_catalog_systems_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "domain",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Domain"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /city-profile
{
  "tags": [
    "city-profile"
  ],
  "summary": "Get City Profile",
  "operationId": "get_city_profile_city_profile_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CityProfileRead"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Get City Profile City Profile Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /city-profile
{
  "tags": [
    "city-profile"
  ],
  "summary": "Create City Profile",
  "operationId": "create_city_profile_city_profile_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CityProfileCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CityProfileRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /city-profile
{
  "tags": [
    "city-profile"
  ],
  "summary": "Update City Profile",
  "operationId": "update_city_profile_city_profile_patch",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CityProfileUpdate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CityProfileRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /config/portal-mode
{
  "tags": [
    "public"
  ],
  "summary": "Get the deployment's current portal posture.",
  "operationId": "get_portal_mode_config_portal_mode_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PortalModeResponse"
          }
        }
      }
    }
  }
}
GET /datasources/
{
  "tags": [
    "datasources"
  ],
  "summary": "List Datasources",
  "operationId": "list_datasources_datasources__get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/DataSourceRead"
            },
            "type": "array",
            "title": "Response List Datasources Datasources  Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /datasources/
{
  "tags": [
    "datasources"
  ],
  "summary": "Create Datasource",
  "operationId": "create_datasource_datasources__post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DataSourceCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DataSourceAdminRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /datasources/documents/{document_id}/re-ingest
{
  "tags": [
    "datasources"
  ],
  "summary": "Re Ingest Document",
  "description": "Re-ingest a failed document. Resets status to pending and queues for processing.",
  "operationId": "re_ingest_document_datasources_documents__document_id__re_ingest_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "document_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Document Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /datasources/stats
{
  "tags": [
    "datasources"
  ],
  "summary": "Ingestion Stats",
  "operationId": "ingestion_stats_datasources_stats_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/IngestionStats"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /datasources/test-connection
{
  "tags": [
    "datasources"
  ],
  "summary": "Test Connection",
  "description": "Test connectivity to a data source without persisting anything.\n\nThis endpoint validates the connection parameters and attempts a test\nconnection. Credentials are NOT persisted, NOT logged, and NOT returned.",
  "operationId": "test_connection_datasources_test_connection_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TestConnectionRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TestConnectionResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /datasources/upload
{
  "tags": [
    "datasources"
  ],
  "summary": "Upload File",
  "operationId": "upload_file_datasources_upload_post",
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_upload_file_datasources_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /datasources/{source_id}
{
  "tags": [
    "datasources"
  ],
  "summary": "Update Datasource",
  "operationId": "update_datasource_datasources__source_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DataSourceUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DataSourceAdminRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/ingest
{
  "tags": [
    "datasources"
  ],
  "summary": "Trigger Ingestion",
  "operationId": "trigger_ingestion_datasources__source_id__ingest_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /datasources/{source_id}/sync-failures
{
  "tags": [
    "sync-failures"
  ],
  "summary": "List Sync Failures",
  "operationId": "list_sync_failures_datasources__source_id__sync_failures_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "Filter by status",
        "title": "Status"
      },
      "description": "Filter by status"
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 500,
        "minimum": 1,
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 0,
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SyncFailureRead"
            },
            "title": "Response List Sync Failures Datasources  Source Id  Sync Failures Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/sync-failures/dismiss-all
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Dismiss All Sync Failures",
  "operationId": "dismiss_all_sync_failures_datasources__source_id__sync_failures_dismiss_all_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "status",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Status to dismiss — required",
        "title": "Status"
      },
      "description": "Status to dismiss — required"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/sync-failures/retry-all
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Retry All Sync Failures",
  "operationId": "retry_all_sync_failures_datasources__source_id__sync_failures_retry_all_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "status",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Status to reset — required",
        "title": "Status"
      },
      "description": "Status to reset — required"
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/sync-failures/{failure_id}/dismiss
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Dismiss Sync Failure",
  "operationId": "dismiss_sync_failure_datasources__source_id__sync_failures__failure_id__dismiss_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "failure_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Failure Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/sync-failures/{failure_id}/retry
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Retry Sync Failure",
  "operationId": "retry_sync_failure_datasources__source_id__sync_failures__failure_id__retry_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "failure_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Failure Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /datasources/{source_id}/sync-run-log
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Get Sync Run Log",
  "operationId": "get_sync_run_log_datasources__source_id__sync_run_log_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 100,
        "minimum": 1,
        "default": 20,
        "title": "Limit"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SyncRunLogRead"
            },
            "title": "Response Get Sync Run Log Datasources  Source Id  Sync Run Log Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /datasources/{source_id}/unpause
{
  "tags": [
    "sync-failures"
  ],
  "summary": "Unpause Source",
  "operationId": "unpause_source_datasources__source_id__unpause_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Source Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /departments/
{
  "tags": [
    "departments"
  ],
  "summary": "List Departments",
  "operationId": "list_departments_departments__get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/DepartmentRead"
            },
            "type": "array",
            "title": "Response List Departments Departments  Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /departments/
{
  "tags": [
    "departments"
  ],
  "summary": "Create Department",
  "operationId": "create_department_departments__post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DepartmentCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DepartmentRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /departments/{dept_id}
{
  "tags": [
    "departments"
  ],
  "summary": "Get Department",
  "operationId": "get_department_departments__dept_id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "dept_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Dept Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DepartmentRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /departments/{dept_id}
{
  "tags": [
    "departments"
  ],
  "summary": "Update Department",
  "operationId": "update_department_departments__dept_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "dept_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Dept Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DepartmentUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DepartmentRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE /departments/{dept_id}
{
  "tags": [
    "departments"
  ],
  "summary": "Delete Department",
  "operationId": "delete_department_departments__dept_id__delete",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "dept_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Dept Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/exports/{artifact_id}/complete
{
  "tags": [
    "native-access"
  ],
  "summary": "Complete Export",
  "operationId": "complete_export_desktop_v1_access_exports__artifact_id__complete_post",
  "parameters": [
    {
      "name": "artifact_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Artifact Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExportReceipt"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/review-context
{
  "tags": [
    "native-access"
  ],
  "summary": "Review Context",
  "operationId": "review_context_desktop_v1_access_review_context_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ReviewInput"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/reviews
{
  "tags": [
    "native-access"
  ],
  "summary": "Save Review",
  "operationId": "save_review_desktop_v1_access_reviews_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SaveReview"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/reviews/{review_id}/delete
{
  "tags": [
    "native-access"
  ],
  "summary": "Delete Review",
  "operationId": "delete_review_desktop_v1_access_reviews__review_id__delete_post",
  "parameters": [
    {
      "name": "review_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Review Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/reviews/{review_id}/export
{
  "tags": [
    "native-access"
  ],
  "summary": "Prepare Export",
  "operationId": "prepare_export_desktop_v1_access_reviews__review_id__export_post",
  "parameters": [
    {
      "name": "review_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Review Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/rewrite-context
{
  "tags": [
    "native-access"
  ],
  "summary": "Rewrite Context",
  "operationId": "rewrite_context_desktop_v1_access_rewrite_context_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RewriteInput"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/rewrite-result
{
  "tags": [
    "native-access"
  ],
  "summary": "Rewrite Result",
  "operationId": "rewrite_result_desktop_v1_access_rewrite_result_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RewriteResult"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/access/state
{
  "tags": [
    "native-access"
  ],
  "summary": "Access State",
  "operationId": "access_state_desktop_v1_access_state_get",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/access/tools
{
  "tags": [
    "native-access"
  ],
  "summary": "Tool",
  "operationId": "tool_desktop_v1_access_tools_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/FormPlan"
            },
            {
              "$ref": "#/components/schemas/PublishingPlan"
            },
            {
              "$ref": "#/components/schemas/AdaPlan"
            },
            {
              "$ref": "#/components/schemas/TaggedPlan"
            }
          ],
          "discriminator": {
            "propertyName": "action",
            "mapping": {
              "form-plan": "#/components/schemas/FormPlan",
              "publishing-workflow": "#/components/schemas/PublishingPlan",
              "ada-title-ii": "#/components/schemas/AdaPlan",
              "tagged-pdf": "#/components/schemas/TaggedPlan"
            }
          },
          "title": "Data"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/code-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Code Sources",
  "operationId": "search_code_sources_desktop_v1_code_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CodeSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/inspections-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Inspections Sources",
  "operationId": "search_inspections_sources_desktop_v1_inspections_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/meetings-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Meetings Sources",
  "operationId": "search_meetings_sources_desktop_v1_meetings_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/notifications/{notification_id}/sent
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Mark Native Notification Sent",
  "operationId": "mark_native_notification_sent_desktop_v1_notifications__notification_id__sent_post",
  "parameters": [
    {
      "name": "notification_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Notification Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsStateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/permitting-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Permitting Sources",
  "operationId": "search_permitting_sources_desktop_v1_permitting_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/planning-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Planning Sources",
  "operationId": "search_planning_sources_desktop_v1_planning_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/public/lookup
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Public Records Lookup",
  "operationId": "public_records_lookup_desktop_v1_public_lookup_post",
  "parameters": [
    {
      "name": "X-Townlight-Public",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Public"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PublicLookup"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/public/messages
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Public Records Message",
  "operationId": "public_records_message_desktop_v1_public_messages_post",
  "parameters": [
    {
      "name": "X-Townlight-Public",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Public"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PublicMessage"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/public/records-state
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Public Records State",
  "operationId": "public_records_state_desktop_v1_public_records_state_get",
  "parameters": [
    {
      "name": "X-Townlight-Public",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Public"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsStateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/public/requests
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Public Records Intake",
  "operationId": "public_records_intake_desktop_v1_public_requests_post",
  "parameters": [
    {
      "name": "X-Townlight-Public",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Public"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PublicIntake"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/records-state
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Get Native Records State",
  "operationId": "get_native_records_state_desktop_v1_records_state_get",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsStateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Create Native Request",
  "operationId": "create_native_request_desktop_v1_requests_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/StaffRecordsIntake"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/NativeRequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/requests/{request_id}
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Get Native Request",
  "operationId": "get_native_request_desktop_v1_requests__request_id__get",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/NativeRequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/actions
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Native Request Operation",
  "operationId": "native_request_operation_desktop_v1_requests__request_id__actions_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/AssignCommand"
            },
            {
              "$ref": "#/components/schemas/DeadlineCommand"
            },
            {
              "$ref": "#/components/schemas/CalculateDeadlineCommand"
            },
            {
              "$ref": "#/components/schemas/ClarificationCommand"
            },
            {
              "$ref": "#/components/schemas/MessageCommand"
            },
            {
              "$ref": "#/components/schemas/SearchNoteCommand"
            },
            {
              "$ref": "#/components/schemas/SearchReceiptCommand"
            },
            {
              "$ref": "#/components/schemas/ExemptionNoteCommand"
            },
            {
              "$ref": "#/components/schemas/ExemptionDecisionCommand"
            },
            {
              "$ref": "#/components/schemas/FeeEstimateCommand"
            },
            {
              "$ref": "#/components/schemas/FeeLineCommand"
            },
            {
              "$ref": "#/components/schemas/FeeWaiverCommand"
            },
            {
              "$ref": "#/components/schemas/DraftCommand"
            },
            {
              "$ref": "#/components/schemas/ApprovalCommand"
            },
            {
              "$ref": "#/components/schemas/FinishCommand"
            }
          ],
          "discriminator": {
            "propertyName": "action",
            "mapping": {
              "assign-records-request": "#/components/schemas/AssignCommand",
              "set-records-deadline": "#/components/schemas/DeadlineCommand",
              "calculate-records-deadline": "#/components/schemas/CalculateDeadlineCommand",
              "request-records-clarification": "#/components/schemas/ClarificationCommand",
              "add-records-message": "#/components/schemas/MessageCommand",
              "record-records-search": "#/components/schemas/SearchNoteCommand",
              "record-records-search-session": "#/components/schemas/SearchReceiptCommand",
              "add-records-exemption-review": "#/components/schemas/ExemptionNoteCommand",
              "add-records-exemption-decision": "#/components/schemas/ExemptionDecisionCommand",
              "estimate-records-fee": "#/components/schemas/FeeEstimateCommand",
              "add-records-fee-line": "#/components/schemas/FeeLineCommand",
              "waive-records-fee": "#/components/schemas/FeeWaiverCommand",
              "draft-records-response": "#/components/schemas/DraftCommand",
              "approve-records-response": "#/components/schemas/ApprovalCommand",
              "fulfill-records-request": "#/components/schemas/FinishCommand",
              "close-records-request": "#/components/schemas/FinishCommand"
            }
          },
          "title": "Command"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/artifacts
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Prepare Native Artifact",
  "operationId": "prepare_native_artifact_desktop_v1_requests__request_id__artifacts_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PrepareArtifact"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ArtifactPlan"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/artifacts/{artifact_id}/complete
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Complete Native Artifact",
  "operationId": "complete_native_artifact_desktop_v1_requests__request_id__artifacts__artifact_id__complete_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "artifact_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Artifact Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CompleteArtifact"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/code-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Code Source",
  "operationId": "attach_code_source_desktop_v1_requests__request_id__code_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CodeSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/documents
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Native Document",
  "operationId": "attach_native_document_desktop_v1_requests__request_id__documents_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AttachDocument"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/documents/{attachment_id}/release-copy
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Native Release Copy",
  "operationId": "attach_native_release_copy_desktop_v1_requests__request_id__documents__attachment_id__release_copy_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "attachment_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Attachment Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AttachReleaseCopy"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/requests/{request_id}/draft-context
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Native Draft Context",
  "operationId": "native_draft_context_desktop_v1_requests__request_id__draft_context_get",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/generated-draft
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Native Generated Draft",
  "operationId": "native_generated_draft_desktop_v1_requests__request_id__generated_draft_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/GeneratedDraft"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/inspections-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Inspections Source",
  "operationId": "attach_inspections_source_desktop_v1_requests__request_id__inspections_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/meetings-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Meetings Source",
  "operationId": "attach_meetings_source_desktop_v1_requests__request_id__meetings_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/permitting-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Permitting Source",
  "operationId": "attach_permitting_source_desktop_v1_requests__request_id__permitting_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/planning-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Planning Source",
  "operationId": "attach_planning_source_desktop_v1_requests__request_id__planning_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/station-recordings
{
  "tags": [
    "native-desktop",
    "station-integration"
  ],
  "summary": "Attach",
  "operationId": "attach_desktop_v1_requests__request_id__station_recordings_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Selection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/requests/{request_id}/view
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Get Native Request View",
  "operationId": "get_native_request_view_desktop_v1_requests__request_id__view_get",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsView"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/requests/{request_id}/zoning-sources
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Attach Zoning Source",
  "operationId": "attach_zoning_source_desktop_v1_requests__request_id__zoning_sources_post",
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSourceSelection"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecordsOperationRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/station/context
{
  "tags": [
    "native-desktop",
    "station-integration"
  ],
  "summary": "Context",
  "operationId": "context_desktop_v1_station_context_get",
  "parameters": [
    {
      "name": "capability",
      "in": "query",
      "required": true,
      "schema": {
        "enum": [
          "capture",
          "read"
        ],
        "type": "string",
        "title": "Capability"
      }
    },
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/suite/search
{
  "tags": [
    "native-records-snapshot"
  ],
  "summary": "Search",
  "operationId": "search_desktop_v1_suite_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SearchInput"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /desktop/v1/suite/state
{
  "tags": [
    "native-records-snapshot"
  ],
  "summary": "Suite State",
  "operationId": "suite_state_desktop_v1_suite_state_get",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /desktop/v1/zoning-sources/search
{
  "tags": [
    "native-desktop"
  ],
  "summary": "Search Zoning Sources",
  "operationId": "search_zoning_sources_desktop_v1_zoning_sources_search_post",
  "parameters": [
    {
      "name": "X-Townlight-Session",
      "in": "header",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "X-Townlight-Session"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MeetingsSearch"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /documents/
{
  "tags": [
    "documents"
  ],
  "summary": "List Documents",
  "operationId": "list_documents_documents__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "source_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "uuid"
          },
          {
            "type": "null"
          }
        ],
        "title": "Source Id"
      }
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/IngestionStatus"
          },
          {
            "type": "null"
          }
        ],
        "title": "Status"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 500,
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentRead"
            },
            "title": "Response List Documents Documents  Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /documents/{document_id}
{
  "tags": [
    "documents"
  ],
  "summary": "Get Document",
  "operationId": "get_document_documents__document_id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "document_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Document Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DocumentRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /documents/{document_id}/chunks
{
  "tags": [
    "documents"
  ],
  "summary": "List Chunks",
  "operationId": "list_chunks_documents__document_id__chunks_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "document_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Document Id"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 500,
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentChunkRead"
            },
            "title": "Response List Chunks Documents  Document Id  Chunks Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/dashboard
{
  "tags": [
    "exemptions"
  ],
  "summary": "Exemption Dashboard",
  "operationId": "exemption_dashboard_exemptions_dashboard_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExemptionDashboard"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /exemptions/dashboard/accuracy
{
  "tags": [
    "exemptions"
  ],
  "summary": "Exemption Accuracy",
  "description": "Acceptance/rejection rates by category, optionally filtered by department.",
  "operationId": "exemption_accuracy_exemptions_dashboard_accuracy_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "department_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "uuid"
          },
          {
            "type": "null"
          }
        ],
        "title": "Department Id"
      }
    },
    {
      "name": "date_from",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Date From"
      }
    },
    {
      "name": "date_to",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Date To"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExemptionAccuracyReport"
            },
            "title": "Response Exemption Accuracy Exemptions Dashboard Accuracy Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/dashboard/export
{
  "tags": [
    "exemptions"
  ],
  "summary": "Export Flag Data",
  "description": "Export exemption flag data as JSON or CSV.",
  "operationId": "export_flag_data_exemptions_dashboard_export_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "format",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "default": "json",
        "title": "Format"
      }
    },
    {
      "name": "date_from",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Date From"
      }
    },
    {
      "name": "date_to",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Date To"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /exemptions/flags/{flag_id}
{
  "tags": [
    "exemptions"
  ],
  "summary": "Review Flag",
  "operationId": "review_flag_exemptions_flags__flag_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "flag_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Flag Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExemptionFlagReview"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExemptionFlagRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/flags/{request_id}
{
  "tags": [
    "exemptions"
  ],
  "summary": "List Flags",
  "operationId": "list_flags_exemptions_flags__request_id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FlagStatus"
          },
          {
            "type": "null"
          }
        ],
        "title": "Status"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExemptionFlagRead"
            },
            "title": "Response List Flags Exemptions Flags  Request Id  Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /exemptions/rules/
{
  "tags": [
    "exemptions"
  ],
  "summary": "Create Rule",
  "operationId": "create_rule_exemptions_rules__post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExemptionRuleCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExemptionRuleRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/rules/
{
  "tags": [
    "exemptions"
  ],
  "summary": "List Rules",
  "operationId": "list_rules_exemptions_rules__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "state_code",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "State Code"
      }
    },
    {
      "name": "enabled",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "Enabled"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExemptionRuleRead"
            },
            "title": "Response List Rules Exemptions Rules  Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /exemptions/rules/{rule_id}
{
  "tags": [
    "exemptions"
  ],
  "summary": "Update Rule",
  "operationId": "update_rule_exemptions_rules__rule_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "rule_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Rule Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExemptionRuleUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ExemptionRuleRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/rules/{rule_id}/history
{
  "tags": [
    "exemptions"
  ],
  "summary": "Get Rule History",
  "description": "Get audit history for an exemption rule.",
  "operationId": "get_rule_history_exemptions_rules__rule_id__history_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "rule_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Rule Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /exemptions/rules/{rule_id}/test
{
  "tags": [
    "exemptions"
  ],
  "summary": "Test Rule",
  "description": "Test a rule against sample text. Returns match results.\n\nUses the `regex` library with timeout=2s to prevent ReDoS on\nadmin-entered patterns.",
  "operationId": "test_rule_exemptions_rules__rule_id__test_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "rule_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Rule Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RuleTestRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RuleTestResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /exemptions/scan/{request_id}
{
  "tags": [
    "exemptions"
  ],
  "summary": "Scan For Exemptions",
  "description": "Scan all documents attached to a request for exemptions.",
  "operationId": "scan_for_exemptions_exemptions_scan__request_id__post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "state_code",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^[A-Z]{2}$",
        "default": "CO",
        "title": "State Code"
      }
    },
    {
      "name": "use_llm",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Use Llm"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/templates/
{
  "tags": [
    "exemptions"
  ],
  "summary": "List Templates",
  "operationId": "list_templates_exemptions_templates__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "template_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Template Type"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisclosureTemplateRead"
            },
            "title": "Response List Templates Exemptions Templates  Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /exemptions/templates/
{
  "tags": [
    "exemptions"
  ],
  "summary": "Create Template",
  "operationId": "create_template_exemptions_templates__post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DisclosureTemplateCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DisclosureTemplateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PUT /exemptions/templates/{template_id}
{
  "tags": [
    "exemptions"
  ],
  "summary": "Update Template",
  "operationId": "update_template_exemptions_templates__template_id__put",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "template_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Template Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DisclosureTemplateUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DisclosureTemplateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /exemptions/templates/{template_id}/render
{
  "tags": [
    "exemptions"
  ],
  "summary": "Render Template",
  "description": "Render a template with city profile variables substituted.",
  "operationId": "render_template_exemptions_templates__template_id__render_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "template_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Template Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DisclosureTemplateRendered"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /health
{
  "summary": "Health",
  "operationId": "health_health_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
GET /notifications/log
{
  "tags": [
    "notifications"
  ],
  "summary": "List Notification Log",
  "description": "List recent notification log entries.",
  "operationId": "list_notification_log_notifications_log_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 200,
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "request_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "uuid"
          },
          {
            "type": "null"
          }
        ],
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationLogRead"
            },
            "title": "Response List Notification Log Notifications Log Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /notifications/templates
{
  "tags": [
    "notifications"
  ],
  "summary": "List Templates",
  "description": "List all notification templates.",
  "operationId": "list_templates_notifications_templates_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/NotificationTemplateRead"
            },
            "type": "array",
            "title": "Response List Templates Notifications Templates Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /notifications/templates
{
  "tags": [
    "notifications"
  ],
  "summary": "Create Template",
  "description": "Create a new notification template (admin only).",
  "operationId": "create_template_notifications_templates_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/NotificationTemplateCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/NotificationTemplateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /notifications/templates/{template_id}
{
  "tags": [
    "notifications"
  ],
  "summary": "Update Template",
  "description": "Update a notification template (admin only).",
  "operationId": "update_template_notifications_templates__template_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "template_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Template Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/NotificationTemplateUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/NotificationTemplateRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /onboarding/interview
{
  "tags": [
    "onboarding"
  ],
  "summary": "Get Next Question",
  "description": "Generate the next onboarding question and persist the last answer.",
  "operationId": "get_next_question_onboarding_interview_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/InterviewRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/InterviewResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /requests/
{
  "tags": [
    "requests"
  ],
  "summary": "Create Request",
  "operationId": "create_request_requests__post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RequestCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/
{
  "tags": [
    "requests"
  ],
  "summary": "List Requests",
  "operationId": "list_requests_requests__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "status",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/RequestStatus"
          },
          {
            "type": "null"
          }
        ],
        "title": "Status"
      }
    },
    {
      "name": "assigned_to",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "format": "uuid"
          },
          {
            "type": "null"
          }
        ],
        "title": "Assigned To"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 50,
        "title": "Limit"
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 0,
        "title": "Offset"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestRead"
            },
            "title": "Response List Requests Requests  Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/stats
{
  "tags": [
    "requests"
  ],
  "summary": "Request Stats",
  "operationId": "request_stats_requests_stats_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestStats"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /requests/{request_id}
{
  "tags": [
    "requests"
  ],
  "summary": "Get Request",
  "operationId": "get_request_requests__request_id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /requests/{request_id}
{
  "tags": [
    "requests"
  ],
  "summary": "Update Request",
  "operationId": "update_request_requests__request_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RequestUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/approve
{
  "tags": [
    "requests"
  ],
  "summary": "Approve Request",
  "operationId": "approve_request_requests__request_id__approve_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/documents
{
  "tags": [
    "requests"
  ],
  "summary": "Attach Document",
  "operationId": "attach_document_requests__request_id__documents_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RequestDocumentAdd"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestDocumentRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/{request_id}/documents
{
  "tags": [
    "requests"
  ],
  "summary": "List Attached Documents",
  "operationId": "list_attached_documents_requests__request_id__documents_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestDocumentRead"
            },
            "title": "Response List Attached Documents Requests  Request Id  Documents Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE /requests/{request_id}/documents/{doc_id}
{
  "tags": [
    "requests"
  ],
  "summary": "Remove Document",
  "operationId": "remove_document_requests__request_id__documents__doc_id__delete",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "doc_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Doc Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/estimate-fees
{
  "tags": [
    "requests"
  ],
  "summary": "Estimate Fees",
  "description": "Estimate fees based on staff-entered page count and fee schedule.\n\nPage count is a manual staff estimate — not inferred from ingested docs.",
  "operationId": "estimate_fees_requests__request_id__estimate_fees_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeEstimateRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeEstimateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/fee-waiver
{
  "tags": [
    "requests"
  ],
  "summary": "Create Fee Waiver",
  "description": "Request a fee waiver for this records request.",
  "operationId": "create_fee_waiver_requests__request_id__fee_waiver_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeWaiverCreateRequest"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeWaiverReadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /requests/{request_id}/fee-waiver/{waiver_id}
{
  "tags": [
    "requests"
  ],
  "summary": "Review Fee Waiver",
  "description": "Approve or deny a fee waiver. Reviewer/Admin only.",
  "operationId": "review_fee_waiver_requests__request_id__fee_waiver__waiver_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "waiver_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Waiver Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeWaiverReviewRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeWaiverReadResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/{request_id}/fees
{
  "tags": [
    "requests"
  ],
  "summary": "Get Fees",
  "operationId": "get_fees_requests__request_id__fees_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeLineItemRead"
            },
            "title": "Response Get Fees Requests  Request Id  Fees Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/fees
{
  "tags": [
    "requests"
  ],
  "summary": "Add Fee",
  "operationId": "add_fee_requests__request_id__fees_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FeeLineItemCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FeeLineItemRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/{request_id}/messages
{
  "tags": [
    "requests"
  ],
  "summary": "Get Messages",
  "operationId": "get_messages_requests__request_id__messages_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageRead"
            },
            "title": "Response Get Messages Requests  Request Id  Messages Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/messages
{
  "tags": [
    "requests"
  ],
  "summary": "Add Message",
  "operationId": "add_message_requests__request_id__messages_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MessageCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MessageRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/ready-for-release
{
  "tags": [
    "requests"
  ],
  "summary": "Mark Ready For Release",
  "operationId": "mark_ready_for_release_requests__request_id__ready_for_release_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/reject
{
  "tags": [
    "requests"
  ],
  "summary": "Reject Request",
  "operationId": "reject_request_requests__request_id__reject_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "reason",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "default": "",
        "title": "Reason"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/response-letter
{
  "tags": [
    "requests"
  ],
  "summary": "Generate Response Letter",
  "description": "Generate a draft response letter for a records request.\n\nAttempts LLM generation via Ollama first; falls back to a structured\ntemplate if the LLM is unavailable.",
  "operationId": "generate_response_letter_requests__request_id__response_letter_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/ResponseLetterCreate"
            },
            {
              "type": "null"
            }
          ],
          "title": "Data"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResponseLetterRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/{request_id}/response-letter
{
  "tags": [
    "requests"
  ],
  "summary": "Get Response Letter",
  "description": "Get the latest response letter for a request.",
  "operationId": "get_response_letter_requests__request_id__response_letter_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResponseLetterRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /requests/{request_id}/response-letter/{letter_id}
{
  "tags": [
    "requests"
  ],
  "summary": "Update Response Letter",
  "description": "Update a response letter's edited content or status.\n\nStatus changes to 'approved' require REVIEWER role.",
  "operationId": "update_response_letter_requests__request_id__response_letter__letter_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    },
    {
      "name": "letter_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Letter Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ResponseLetterUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ResponseLetterRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/submit-review
{
  "tags": [
    "requests"
  ],
  "summary": "Submit For Review",
  "operationId": "submit_for_review_requests__request_id__submit_review_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RequestRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /requests/{request_id}/timeline
{
  "tags": [
    "requests"
  ],
  "summary": "Get Timeline",
  "operationId": "get_timeline_requests__request_id__timeline_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimelineEventRead"
            },
            "title": "Response Get Timeline Requests  Request Id  Timeline Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST /requests/{request_id}/timeline
{
  "tags": [
    "requests"
  ],
  "summary": "Add Timeline Event",
  "operationId": "add_timeline_event_requests__request_id__timeline_post",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "request_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Request Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TimelineEventCreate"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TimelineEventRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /search/export
{
  "tags": [
    "search"
  ],
  "summary": "Export Search Results",
  "description": "Export search results as CSV. Runs a search and streams the results.",
  "operationId": "export_search_results_search_export_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "query",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Query"
      }
    },
    {
      "name": "format",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "default": "csv",
        "title": "Format"
      }
    },
    {
      "name": "department_id",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Department Id"
      }
    },
    {
      "name": "file_type",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "File Type"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /search/filters
{
  "tags": [
    "search"
  ],
  "summary": "Get Filter Options",
  "description": "Get available filter values for search.",
  "operationId": "get_filter_options_search_filters_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SearchFilterOptions"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /search/query
{
  "tags": [
    "search"
  ],
  "summary": "Execute Search",
  "description": "Execute a hybrid search query. Optionally synthesize an LLM answer.",
  "operationId": "execute_search_search_query_post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SearchRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SearchResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /search/sessions
{
  "tags": [
    "search"
  ],
  "summary": "List Sessions",
  "description": "List the current user's search sessions.",
  "operationId": "list_sessions_search_sessions_get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 20,
        "title": "Limit"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchSessionRead"
            },
            "title": "Response List Sessions Search Sessions Get"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /search/sessions/{session_id}
{
  "tags": [
    "search"
  ],
  "summary": "Get Session",
  "description": "Get a search session with its query history.",
  "operationId": "get_session_search_sessions__session_id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "session_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Session Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SearchSessionRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /service-accounts/
{
  "tags": [
    "service-accounts"
  ],
  "summary": "List Service Accounts",
  "operationId": "list_service_accounts_service_accounts__get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/ServiceAccountRead"
            },
            "type": "array",
            "title": "Response List Service Accounts Service Accounts  Get"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
POST /service-accounts/
{
  "tags": [
    "service-accounts"
  ],
  "summary": "Create Service Account",
  "operationId": "create_service_account_service_accounts__post",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ServiceAccountCreate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "201": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ServiceAccountCreated"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /service-accounts/{account_id}
{
  "tags": [
    "service-accounts"
  ],
  "summary": "Update Service Account",
  "operationId": "update_service_account_service_accounts__account_id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "account_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid",
        "title": "Account Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ServiceAccountUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ServiceAccountRead"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET /users/me
{
  "tags": [
    "users"
  ],
  "summary": "Users:Current User",
  "operationId": "users_current_user_users_me_get",
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/UserRead"
          }
        }
      }
    },
    "401": {
      "description": "Missing token or inactive user."
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
PATCH /users/me
{
  "tags": [
    "users"
  ],
  "summary": "Users:Patch Current User",
  "operationId": "users_patch_current_user_users_me_patch",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UserSelfUpdate"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/UserRead"
          }
        }
      }
    },
    "401": {
      "description": "Missing token or inactive user."
    },
    "400": {
      "description": "Bad Request",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorModel"
          },
          "examples": {
            "UPDATE_USER_EMAIL_ALREADY_EXISTS": {
              "summary": "A user with this email already exists.",
              "value": {
                "detail": "UPDATE_USER_EMAIL_ALREADY_EXISTS"
              }
            },
            "UPDATE_USER_INVALID_PASSWORD": {
              "summary": "Password validation failed.",
              "value": {
                "detail": {
                  "code": "UPDATE_USER_INVALID_PASSWORD",
                  "reason": "Password should beat least 3 characters"
                }
              }
            }
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ]
}
GET /users/{id}
{
  "tags": [
    "users"
  ],
  "summary": "Users:User",
  "operationId": "users_user_users__id__get",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/UserRead"
          }
        }
      }
    },
    "401": {
      "description": "Missing token or inactive user."
    },
    "403": {
      "description": "Not a superuser."
    },
    "404": {
      "description": "The user does not exist."
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
PATCH /users/{id}
{
  "tags": [
    "users"
  ],
  "summary": "Users:Patch User",
  "operationId": "users_patch_user_users__id__patch",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Id"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UserSelfUpdate"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/UserRead"
          }
        }
      }
    },
    "401": {
      "description": "Missing token or inactive user."
    },
    "403": {
      "description": "Not a superuser."
    },
    "404": {
      "description": "The user does not exist."
    },
    "400": {
      "content": {
        "application/json": {
          "examples": {
            "UPDATE_USER_EMAIL_ALREADY_EXISTS": {
              "summary": "A user with this email already exists.",
              "value": {
                "detail": "UPDATE_USER_EMAIL_ALREADY_EXISTS"
              }
            },
            "UPDATE_USER_INVALID_PASSWORD": {
              "summary": "Password validation failed.",
              "value": {
                "detail": {
                  "code": "UPDATE_USER_INVALID_PASSWORD",
                  "reason": "Password should beat least 3 characters"
                }
              }
            }
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorModel"
          }
        }
      },
      "description": "Bad Request"
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
DELETE /users/{id}
{
  "tags": [
    "users"
  ],
  "summary": "Users:Delete User",
  "operationId": "users_delete_user_users__id__delete",
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Id"
      }
    }
  ],
  "responses": {
    "204": {
      "description": "Successful Response"
    },
    "401": {
      "description": "Missing token or inactive user."
    },
    "403": {
      "description": "Not a superuser."
    },
    "404": {
      "description": "The user does not exist."
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

Request and response data dictionary

Each schema includes the actual required fields, types, constraints and descriptions. References resolve against the machine-readable document.

ActionItemInput
{
  "properties": {
    "description": {
      "type": "string",
      "minLength": 1,
      "title": "Description"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "source_motion_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Motion Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "description"
  ],
  "title": "ActionItemInput"
}
AdaPlan
{
  "properties": {
    "action": {
      "type": "string",
      "const": "ada-title-ii",
      "title": "Action"
    },
    "serviceArea": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Servicearea"
    },
    "hasCoordinatorReview": {
      "type": "boolean",
      "title": "Hascoordinatorreview",
      "default": false
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "serviceArea"
  ],
  "title": "AdaPlan"
}
AdminUserCreateRequest
{
  "properties": {
    "email": {
      "type": "string",
      "title": "Email"
    },
    "password": {
      "type": "string",
      "title": "Password"
    },
    "full_name": {
      "type": "string",
      "title": "Full Name",
      "default": ""
    },
    "role": {
      "type": "string",
      "title": "Role",
      "default": "staff"
    }
  },
  "type": "object",
  "required": [
    "email",
    "password"
  ],
  "title": "AdminUserCreateRequest"
}
AdminUserCreateResponse
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "email": {
      "type": "string",
      "title": "Email"
    },
    "full_name": {
      "type": "string",
      "title": "Full Name"
    },
    "role": {
      "type": "string",
      "title": "Role"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    }
  },
  "type": "object",
  "required": [
    "id",
    "email",
    "full_name",
    "role",
    "is_active"
  ],
  "title": "AdminUserCreateResponse"
}
AgendaAssignment
{
  "properties": {
    "meeting_id": {
      "type": "string",
      "format": "uuid",
      "title": "Meeting Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "meeting_id"
  ],
  "title": "AgendaAssignment"
}
AgendaInput
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "department_name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Department Name"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "department_name"
  ],
  "title": "AgendaInput"
}
AgendaReviewInput
{
  "properties": {
    "to_status": {
      "type": "string",
      "enum": [
        "DRAFTED",
        "SUBMITTED",
        "DEPT_APPROVED",
        "LEGAL_REVIEWED",
        "CLERK_ACCEPTED",
        "ON_AGENDA",
        "IN_PACKET",
        "POSTED",
        "HEARD",
        "DISPOSED",
        "ARCHIVED"
      ],
      "title": "To Status"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "to_status"
  ],
  "title": "AgendaReviewInput"
}
AmendmentInput
{
  "properties": {
    "expected_revision": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "policy": {
      "$ref": "#/components/schemas/PolicySelection"
    },
    "proposal": {
      "type": "string",
      "maxLength": 20000,
      "minLength": 1,
      "title": "Proposal"
    },
    "responsible_staff": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Responsible Staff"
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "review",
        "adopted",
        "withdrawn"
      ],
      "title": "Status",
      "default": "draft"
    },
    "review_note": {
      "type": "string",
      "maxLength": 5000,
      "title": "Review Note",
      "default": ""
    },
    "adoption_revision": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        },
        {
          "type": "null"
        }
      ],
      "title": "Adoption Revision"
    },
    "note": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "policy",
    "proposal",
    "responsible_staff",
    "note"
  ],
  "title": "AmendmentInput"
}
AnalysisObservation
{
  "properties": {
    "source": {
      "type": "string",
      "maxLength": 64,
      "minLength": 1,
      "title": "Source"
    },
    "filename": {
      "type": "string",
      "maxLength": 160,
      "title": "Filename",
      "default": ""
    },
    "media_type": {
      "type": "string",
      "maxLength": 80,
      "title": "Media Type",
      "default": ""
    },
    "text": {
      "type": "string",
      "maxLength": 4000,
      "minLength": 1,
      "title": "Text"
    },
    "adapter": {
      "type": "string",
      "maxLength": 120,
      "title": "Adapter",
      "default": ""
    },
    "citation_source_ids": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Citation Source Ids"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source",
    "text"
  ],
  "title": "AnalysisObservation",
  "description": "One draft observation, named with the adapter that actually produced it."
}
AnalysisRecord
{
  "properties": {
    "observations": {
      "items": {
        "$ref": "#/components/schemas/AnalysisObservation"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Observations"
    },
    "cited_sections": {
      "items": {
        "$ref": "#/components/schemas/CitedSection"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Cited Sections"
    },
    "unavailable": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Unavailable"
    },
    "runtime": {
      "additionalProperties": true,
      "type": "object",
      "title": "Runtime"
    },
    "review_required": {
      "type": "boolean",
      "title": "Review Required",
      "default": true
    }
  },
  "additionalProperties": false,
  "type": "object",
  "title": "AnalysisRecord",
  "description": "The adapter output that accompanies a saved inspection draft."
}
ApprovalCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "approve-records-response",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/ApprovalPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "ApprovalCommand"
}
ApprovalPayload
{
  "properties": {
    "approvalNote": {
      "type": "string",
      "title": "Approvalnote",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "title": "ApprovalPayload"
}
ArchiveInput
{
  "properties": {
    "visibility": {
      "type": "string",
      "enum": [
        "public",
        "closed_session"
      ],
      "title": "Visibility"
    },
    "packet_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Packet Id"
    },
    "minutes_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Minutes Id"
    },
    "plain_language_summary": {
      "type": "string",
      "title": "Plain Language Summary",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "visibility"
  ],
  "title": "ArchiveInput"
}
ArtifactPlan
{
  "properties": {
    "artifact_id": {
      "type": "string",
      "title": "Artifact Id"
    },
    "file_name": {
      "type": "string",
      "title": "File Name"
    },
    "content": {
      "type": "string",
      "title": "Content"
    },
    "sha256": {
      "type": "string",
      "title": "Sha256"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "artifact_id",
    "file_name",
    "content",
    "sha256",
    "created_at_unix_seconds"
  ],
  "title": "ArtifactPlan"
}
AssignCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "assign-records-request",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/AssignmentPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "AssignCommand"
}
AssignmentPayload
{
  "properties": {
    "assignedTo": {
      "type": "string",
      "minLength": 1,
      "title": "Assignedto"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "assignedTo"
  ],
  "title": "AssignmentPayload"
}
AttachDocument
{
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "title": "Title"
    },
    "citation": {
      "type": "string",
      "title": "Citation",
      "default": ""
    },
    "file": {
      "$ref": "#/components/schemas/ManagedFileReceipt"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "file"
  ],
  "title": "AttachDocument"
}
AttachReleaseCopy
{
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "release-ready copy",
        "redacted copy"
      ],
      "title": "Status"
    },
    "note": {
      "type": "string",
      "title": "Note",
      "default": ""
    },
    "added_by": {
      "type": "string",
      "title": "Added By",
      "default": ""
    },
    "file": {
      "$ref": "#/components/schemas/ManagedFileReceipt"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "status",
    "file"
  ],
  "title": "AttachReleaseCopy"
}
AuditChainVerification
{
  "properties": {
    "is_valid": {
      "type": "boolean",
      "title": "Is Valid"
    },
    "entries_checked": {
      "type": "integer",
      "title": "Entries Checked"
    },
    "error_message": {
      "type": "string",
      "title": "Error Message"
    }
  },
  "type": "object",
  "required": [
    "is_valid",
    "entries_checked",
    "error_message"
  ],
  "title": "AuditChainVerification"
}
AuditLogRead
{
  "properties": {
    "id": {
      "type": "integer",
      "title": "Id"
    },
    "prev_hash": {
      "type": "string",
      "title": "Prev Hash"
    },
    "entry_hash": {
      "type": "string",
      "title": "Entry Hash"
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "title": "Timestamp"
    },
    "user_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "User Id"
    },
    "action": {
      "type": "string",
      "title": "Action"
    },
    "resource_type": {
      "type": "string",
      "title": "Resource Type"
    },
    "resource_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Resource Id"
    },
    "details": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Details"
    },
    "ai_generated": {
      "type": "boolean",
      "title": "Ai Generated"
    }
  },
  "type": "object",
  "required": [
    "id",
    "prev_hash",
    "entry_hash",
    "timestamp",
    "user_id",
    "action",
    "resource_type",
    "resource_id",
    "details",
    "ai_generated"
  ],
  "title": "AuditLogRead"
}
AuditView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "module_id": {
      "type": "string",
      "title": "Module Id"
    },
    "action": {
      "type": "string",
      "title": "Action"
    },
    "summary": {
      "type": "string",
      "title": "Summary"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    },
    "previous_hash": {
      "type": "string",
      "title": "Previous Hash"
    },
    "entry_hash": {
      "type": "string",
      "title": "Entry Hash"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "module_id",
    "action",
    "summary",
    "created_at_unix_seconds",
    "previous_hash",
    "entry_hash"
  ],
  "title": "AuditView"
}
BearerResponse
{
  "properties": {
    "access_token": {
      "type": "string",
      "title": "Access Token"
    },
    "token_type": {
      "type": "string",
      "title": "Token Type"
    }
  },
  "type": "object",
  "required": [
    "access_token",
    "token_type"
  ],
  "title": "BearerResponse"
}
Body_auth_jwt_login_auth_jwt_login_post
{
  "properties": {
    "grant_type": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^password$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Grant Type"
    },
    "username": {
      "type": "string",
      "title": "Username"
    },
    "password": {
      "type": "string",
      "format": "password",
      "title": "Password"
    },
    "scope": {
      "type": "string",
      "title": "Scope",
      "default": ""
    },
    "client_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Client Id"
    },
    "client_secret": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "format": "password",
      "title": "Client Secret"
    }
  },
  "type": "object",
  "required": [
    "username",
    "password"
  ],
  "title": "Body_auth_jwt_login_auth_jwt_login_post"
}
Body_upload_file_datasources_upload_post
{
  "properties": {
    "file": {
      "type": "string",
      "contentMediaType": "application/octet-stream",
      "title": "File"
    }
  },
  "type": "object",
  "required": [
    "file"
  ],
  "title": "Body_upload_file_datasources_upload_post"
}
CalculateDeadlineCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "calculate-records-deadline",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/CalculateDeadlinePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "CalculateDeadlineCommand"
}
CalculateDeadlinePayload
{
  "properties": {
    "deadlineReceivedDate": {
      "type": "string",
      "title": "Deadlinereceiveddate"
    },
    "deadlineRuleName": {
      "type": "string",
      "minLength": 1,
      "title": "Deadlinerulename"
    },
    "deadlineDayCount": {
      "type": "string",
      "title": "Deadlinedaycount"
    },
    "deadlineDayType": {
      "type": "string",
      "title": "Deadlinedaytype"
    },
    "deadlineBasis": {
      "type": "string",
      "minLength": 1,
      "title": "Deadlinebasis"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "deadlineReceivedDate",
    "deadlineRuleName",
    "deadlineDayCount",
    "deadlineDayType",
    "deadlineBasis"
  ],
  "title": "CalculateDeadlinePayload"
}
ChapterCreate
{
  "properties": {
    "chapter_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Chapter Id"
    },
    "title_id": {
      "type": "string",
      "minLength": 1,
      "title": "Title Id"
    },
    "chapter_number": {
      "type": "string",
      "minLength": 1,
      "title": "Chapter Number"
    },
    "chapter_name": {
      "type": "string",
      "minLength": 1,
      "title": "Chapter Name"
    },
    "sort_order": {
      "type": "integer",
      "title": "Sort Order",
      "default": 0
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title_id",
    "chapter_number",
    "chapter_name"
  ],
  "title": "ChapterCreate",
  "description": "Request body for creating a code chapter."
}
CitedSection
{
  "properties": {
    "source_id": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Source Id"
    },
    "citation": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Citation"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "title": "Title",
      "default": ""
    },
    "version": {
      "type": "string",
      "maxLength": 80,
      "title": "Version",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "citation"
  ],
  "title": "CitedSection",
  "description": "One resolved public Code section; never a caller-supplied quotation."
}
CityProfileCreate
{
  "properties": {
    "city_name": {
      "type": "string",
      "title": "City Name"
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "County"
    },
    "population_band": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Population Band"
    },
    "email_platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Email Platform"
    },
    "has_dedicated_it": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Has Dedicated It"
    },
    "monthly_request_volume": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Monthly Request Volume"
    },
    "profile_data": {
      "additionalProperties": true,
      "type": "object",
      "title": "Profile Data",
      "default": {}
    },
    "gap_map": {
      "additionalProperties": true,
      "type": "object",
      "title": "Gap Map",
      "default": {}
    }
  },
  "type": "object",
  "required": [
    "city_name"
  ],
  "title": "CityProfileCreate"
}
CityProfileRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "city_name": {
      "type": "string",
      "title": "City Name"
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "County"
    },
    "population_band": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Population Band"
    },
    "email_platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Email Platform"
    },
    "has_dedicated_it": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Has Dedicated It"
    },
    "monthly_request_volume": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Monthly Request Volume"
    },
    "onboarding_status": {
      "type": "string",
      "title": "Onboarding Status"
    },
    "profile_data": {
      "additionalProperties": true,
      "type": "object",
      "title": "Profile Data"
    },
    "gap_map": {
      "additionalProperties": true,
      "type": "object",
      "title": "Gap Map"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "title": "Updated At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "city_name",
    "state",
    "county",
    "population_band",
    "email_platform",
    "has_dedicated_it",
    "monthly_request_volume",
    "onboarding_status",
    "profile_data",
    "gap_map",
    "created_at",
    "updated_at"
  ],
  "title": "CityProfileRead"
}
CityProfileUpdate
{
  "properties": {
    "city_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "City Name"
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "County"
    },
    "population_band": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Population Band"
    },
    "email_platform": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Email Platform"
    },
    "has_dedicated_it": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Has Dedicated It"
    },
    "monthly_request_volume": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Monthly Request Volume"
    },
    "onboarding_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Onboarding Status"
    },
    "profile_data": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Profile Data"
    },
    "gap_map": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Gap Map"
    }
  },
  "type": "object",
  "title": "CityProfileUpdate"
}
ClarificationCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "request-records-clarification",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/ClarificationPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "ClarificationCommand"
}
ClarificationPayload
{
  "properties": {
    "clarificationNote": {
      "type": "string",
      "minLength": 1,
      "title": "Clarificationnote"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "clarificationNote"
  ],
  "title": "ClarificationPayload"
}
Closeout
{
  "properties": {
    "decision_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "title": "Decision Id"
    },
    "version_id": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Version Id"
    },
    "source_id": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Source Id"
    },
    "version_label": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Version Label"
    },
    "body": {
      "type": "string",
      "maxLength": 1000000,
      "minLength": 1,
      "title": "Body"
    },
    "effective_start": {
      "type": "string",
      "format": "date",
      "title": "Effective Start"
    },
    "effective_end": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Effective End"
    },
    "is_current": {
      "type": "boolean",
      "title": "Is Current"
    },
    "reconciliation_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reconciliation Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "decision_id",
    "version_id",
    "source_id",
    "version_label",
    "body",
    "effective_start",
    "is_current"
  ],
  "title": "Closeout"
}
CodeContext
{
  "properties": {
    "section_number": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Section Number"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "As Of"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "section_number"
  ],
  "title": "CodeContext"
}
CodeLink
{
  "properties": {
    "provider": {
      "type": "string",
      "const": "code",
      "title": "Provider",
      "default": "code"
    },
    "source_id": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Expected Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "expected_sha256"
  ],
  "title": "CodeLink"
}
CodeSearch
{
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "As Of"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "query"
  ],
  "title": "CodeSearch"
}
CodeSourceSelection
{
  "properties": {
    "source_id": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Expected Sha256"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "As Of"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "expected_sha256"
  ],
  "title": "CodeSourceSelection"
}
CompleteArtifact
{
  "properties": {
    "export_path": {
      "type": "string",
      "minLength": 1,
      "title": "Export Path"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "export_path"
  ],
  "title": "CompleteArtifact"
}
ConnectionSearch
{
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "meetings",
        "zoning"
      ],
      "title": "Provider"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "provider",
    "query"
  ],
  "title": "ConnectionSearch"
}
CoverageGapResponse
{
  "properties": {
    "jurisdictions_without_rules": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Jurisdictions Without Rules"
    },
    "departments_without_staff": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": "array",
      "title": "Departments Without Staff"
    },
    "uncovered_categories": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Uncovered Categories"
    },
    "total_gaps": {
      "type": "integer",
      "title": "Total Gaps"
    }
  },
  "type": "object",
  "required": [
    "jurisdictions_without_rules",
    "departments_without_staff",
    "uncovered_categories",
    "total_gaps"
  ],
  "title": "CoverageGapResponse"
}
DataSourceAdminRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "source_type": {
      "$ref": "#/components/schemas/SourceType"
    },
    "sync_schedule": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sync Schedule"
    },
    "schedule_enabled": {
      "type": "boolean",
      "title": "Schedule Enabled",
      "default": true
    },
    "next_sync_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Sync At"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    },
    "created_by": {
      "type": "string",
      "format": "uuid",
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "last_ingestion_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Ingestion At"
    },
    "last_sync_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Sync At"
    },
    "last_sync_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Sync Status"
    },
    "last_error_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Error Message"
    },
    "consecutive_failure_count": {
      "type": "integer",
      "title": "Consecutive Failure Count",
      "default": 0
    },
    "sync_paused": {
      "type": "boolean",
      "title": "Sync Paused",
      "default": false
    },
    "health_status": {
      "type": "string",
      "title": "Health Status",
      "default": "healthy"
    },
    "active_failure_count": {
      "type": "integer",
      "title": "Active Failure Count",
      "default": 0
    },
    "connector_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Connector Type"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At"
    },
    "connection_config": {
      "additionalProperties": true,
      "type": "object",
      "title": "Connection Config"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "source_type",
    "is_active",
    "created_by",
    "created_at",
    "last_ingestion_at",
    "connection_config"
  ],
  "title": "DataSourceAdminRead",
  "description": "Full datasource shape including connection_config. Returned only by admin-gated endpoints."
}
DataSourceCreate
{
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "source_type": {
      "$ref": "#/components/schemas/SourceType"
    },
    "connection_config": {
      "additionalProperties": true,
      "type": "object",
      "title": "Connection Config",
      "default": {}
    },
    "sync_schedule": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sync Schedule"
    },
    "schedule_enabled": {
      "type": "boolean",
      "title": "Schedule Enabled",
      "default": true
    }
  },
  "type": "object",
  "required": [
    "name",
    "source_type"
  ],
  "title": "DataSourceCreate"
}
DataSourceRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "source_type": {
      "$ref": "#/components/schemas/SourceType"
    },
    "sync_schedule": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sync Schedule"
    },
    "schedule_enabled": {
      "type": "boolean",
      "title": "Schedule Enabled",
      "default": true
    },
    "next_sync_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Sync At"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    },
    "created_by": {
      "type": "string",
      "format": "uuid",
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "last_ingestion_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Ingestion At"
    },
    "last_sync_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Sync At"
    },
    "last_sync_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Sync Status"
    },
    "last_error_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Error Message"
    },
    "consecutive_failure_count": {
      "type": "integer",
      "title": "Consecutive Failure Count",
      "default": 0
    },
    "sync_paused": {
      "type": "boolean",
      "title": "Sync Paused",
      "default": false
    },
    "health_status": {
      "type": "string",
      "title": "Health Status",
      "default": "healthy"
    },
    "active_failure_count": {
      "type": "integer",
      "title": "Active Failure Count",
      "default": 0
    },
    "connector_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Connector Type"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "source_type",
    "is_active",
    "created_by",
    "created_at",
    "last_ingestion_at"
  ],
  "title": "DataSourceRead",
  "description": "Redacted datasource shape — safe for non-admin roles. connection_config omitted."
}
DataSourceUpdate
{
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "connection_config": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Connection Config"
    },
    "sync_schedule": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sync Schedule"
    },
    "schedule_enabled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Schedule Enabled"
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    }
  },
  "type": "object",
  "title": "DataSourceUpdate"
}
DeadlineCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "set-records-deadline",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/DeadlinePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "DeadlineCommand"
}
DeadlinePayload
{
  "properties": {
    "deadline": {
      "type": "string",
      "title": "Deadline"
    },
    "deadlineBasis": {
      "type": "string",
      "minLength": 1,
      "title": "Deadlinebasis"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "deadline",
    "deadlineBasis"
  ],
  "title": "DeadlinePayload"
}
Decision
{
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "title": "Id"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "adopted",
        "not_adopted",
        "deferred",
        "withdrawn"
      ],
      "title": "Outcome"
    },
    "decided_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Decided At"
    },
    "decision_text": {
      "type": "string",
      "maxLength": 1000000,
      "minLength": 1,
      "title": "Decision Text"
    },
    "supporting_references": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Supporting References"
    },
    "supersedes_decision_id": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Supersedes Decision Id"
    },
    "reconciliation_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reconciliation Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "outcome",
    "decision_text"
  ],
  "title": "Decision"
}
DepartmentCreate
{
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "code": {
      "type": "string",
      "title": "Code"
    },
    "contact_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contact Email"
    }
  },
  "type": "object",
  "required": [
    "name",
    "code"
  ],
  "title": "DepartmentCreate"
}
DepartmentRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "code": {
      "type": "string",
      "title": "Code"
    },
    "contact_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contact Email"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "code",
    "contact_email",
    "created_at"
  ],
  "title": "DepartmentRead"
}
DepartmentUpdate
{
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Code"
    },
    "contact_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contact Email"
    }
  },
  "type": "object",
  "title": "DepartmentUpdate"
}
DisclosureTemplateCreate
{
  "properties": {
    "template_type": {
      "type": "string",
      "title": "Template Type"
    },
    "state_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State Code"
    },
    "content": {
      "type": "string",
      "title": "Content"
    }
  },
  "type": "object",
  "required": [
    "template_type",
    "content"
  ],
  "title": "DisclosureTemplateCreate"
}
DisclosureTemplateRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "template_type": {
      "type": "string",
      "title": "Template Type"
    },
    "state_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State Code"
    },
    "content": {
      "type": "string",
      "title": "Content"
    },
    "version": {
      "type": "integer",
      "title": "Version"
    },
    "updated_by": {
      "type": "string",
      "format": "uuid",
      "title": "Updated By"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "title": "Updated At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "template_type",
    "state_code",
    "content",
    "version",
    "updated_by",
    "updated_at"
  ],
  "title": "DisclosureTemplateRead"
}
DisclosureTemplateRendered
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "template_type": {
      "type": "string",
      "title": "Template Type"
    },
    "rendered_content": {
      "type": "string",
      "title": "Rendered Content"
    },
    "has_unresolved_variables": {
      "type": "boolean",
      "title": "Has Unresolved Variables"
    }
  },
  "type": "object",
  "required": [
    "id",
    "template_type",
    "rendered_content",
    "has_unresolved_variables"
  ],
  "title": "DisclosureTemplateRendered"
}
DisclosureTemplateUpdate
{
  "properties": {
    "content": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Content"
    },
    "state_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "State Code"
    }
  },
  "type": "object",
  "title": "DisclosureTemplateUpdate"
}
DocumentChunkRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "document_id": {
      "type": "string",
      "format": "uuid",
      "title": "Document Id"
    },
    "chunk_index": {
      "type": "integer",
      "title": "Chunk Index"
    },
    "content_text": {
      "type": "string",
      "title": "Content Text"
    },
    "token_count": {
      "type": "integer",
      "title": "Token Count"
    },
    "page_number": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Number"
    }
  },
  "type": "object",
  "required": [
    "id",
    "document_id",
    "chunk_index",
    "content_text",
    "token_count",
    "page_number"
  ],
  "title": "DocumentChunkRead"
}
DocumentRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "source_id": {
      "type": "string",
      "format": "uuid",
      "title": "Source Id"
    },
    "source_path": {
      "type": "string",
      "title": "Source Path"
    },
    "filename": {
      "type": "string",
      "title": "Filename"
    },
    "file_type": {
      "type": "string",
      "title": "File Type"
    },
    "file_hash": {
      "type": "string",
      "title": "File Hash"
    },
    "file_size": {
      "type": "integer",
      "title": "File Size"
    },
    "ingestion_status": {
      "$ref": "#/components/schemas/IngestionStatus"
    },
    "ingestion_error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ingestion Error"
    },
    "chunk_count": {
      "type": "integer",
      "title": "Chunk Count"
    },
    "ingested_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ingested At"
    },
    "connector_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Connector Type"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "source_id",
    "source_path",
    "filename",
    "file_type",
    "file_hash",
    "file_size",
    "ingestion_status",
    "ingestion_error",
    "chunk_count",
    "ingested_at"
  ],
  "title": "DocumentRead"
}
DraftCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "draft-records-response",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/DraftPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "DraftCommand"
}
DraftInput
{
  "properties": {
    "source_materials": {
      "items": {
        "$ref": "#/components/schemas/SourceInput"
      },
      "type": "array",
      "title": "Source Materials"
    },
    "sentences": {
      "items": {
        "$ref": "#/components/schemas/SentenceInput"
      },
      "type": "array",
      "minItems": 1,
      "title": "Sentences"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sentences"
  ],
  "title": "DraftInput"
}
DraftPayload
{
  "properties": {
    "responseDraft": {
      "type": "string",
      "minLength": 1,
      "title": "Responsedraft"
    },
    "citation": {
      "type": "string",
      "title": "Citation",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "responseDraft"
  ],
  "title": "DraftPayload"
}
ErrorModel
{
  "properties": {
    "detail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      ],
      "title": "Detail"
    }
  },
  "type": "object",
  "required": [
    "detail"
  ],
  "title": "ErrorModel"
}
Evidence
{
  "properties": {
    "filename": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,150}$",
      "title": "Filename"
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Description"
    },
    "media_type": {
      "type": "string",
      "enum": [
        "text/plain",
        "image/jpeg",
        "image/png",
        "image/webp",
        "application/pdf",
        "audio/webm",
        "audio/ogg",
        "audio/wav",
        "audio/mpeg",
        "audio/mp4"
      ],
      "title": "Media Type"
    },
    "content_base64": {
      "type": "string",
      "maxLength": 14000000,
      "minLength": 1,
      "title": "Content Base64"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "filename",
    "description",
    "media_type",
    "content_base64",
    "sha256"
  ],
  "title": "Evidence"
}
EvidenceItem
{
  "properties": {
    "filename": {
      "type": "string",
      "maxLength": 151,
      "minLength": 1,
      "title": "Filename"
    },
    "media_type": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "title": "Media Type"
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "title": "Description",
      "default": ""
    },
    "content_base64": {
      "type": "string",
      "maxLength": 14000000,
      "minLength": 1,
      "title": "Content Base64"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "filename",
    "media_type",
    "content_base64",
    "sha256"
  ],
  "title": "EvidenceItem"
}
EvidenceItems
{
  "properties": {
    "items": {
      "items": {
        "$ref": "#/components/schemas/EvidenceItem"
      },
      "type": "array",
      "maxItems": 10,
      "minItems": 1,
      "title": "Items"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "items"
  ],
  "title": "EvidenceItems"
}
ExemptionAccuracyReport
{
  "properties": {
    "category": {
      "type": "string",
      "title": "Category"
    },
    "total_flags": {
      "type": "integer",
      "title": "Total Flags"
    },
    "accepted": {
      "type": "integer",
      "title": "Accepted"
    },
    "rejected": {
      "type": "integer",
      "title": "Rejected"
    },
    "pending": {
      "type": "integer",
      "title": "Pending"
    },
    "acceptance_rate": {
      "type": "number",
      "title": "Acceptance Rate"
    }
  },
  "type": "object",
  "required": [
    "category",
    "total_flags",
    "accepted",
    "rejected",
    "pending",
    "acceptance_rate"
  ],
  "title": "ExemptionAccuracyReport"
}
ExemptionDashboard
{
  "properties": {
    "total_flags": {
      "type": "integer",
      "title": "Total Flags"
    },
    "by_status": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Status"
    },
    "by_category": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Category"
    },
    "acceptance_rate": {
      "type": "number",
      "title": "Acceptance Rate"
    },
    "total_rules": {
      "type": "integer",
      "title": "Total Rules"
    },
    "active_rules": {
      "type": "integer",
      "title": "Active Rules"
    }
  },
  "type": "object",
  "required": [
    "total_flags",
    "by_status",
    "by_category",
    "acceptance_rate",
    "total_rules",
    "active_rules"
  ],
  "title": "ExemptionDashboard"
}
ExemptionDecisionCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "add-records-exemption-decision",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/ExemptionDecisionPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "ExemptionDecisionCommand"
}
ExemptionDecisionPayload
{
  "properties": {
    "exemptionSource": {
      "type": "string",
      "minLength": 1,
      "title": "Exemptionsource"
    },
    "exemptionKind": {
      "type": "string",
      "minLength": 1,
      "title": "Exemptionkind"
    },
    "exemptionFinding": {
      "type": "string",
      "minLength": 1,
      "title": "Exemptionfinding"
    },
    "exemptionDecision": {
      "type": "string",
      "enum": [
        "release",
        "redact",
        "exempt"
      ],
      "title": "Exemptiondecision"
    },
    "exemptionBasis": {
      "type": "string",
      "minLength": 1,
      "title": "Exemptionbasis"
    },
    "exemptionReviewer": {
      "type": "string",
      "title": "Exemptionreviewer",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "exemptionSource",
    "exemptionKind",
    "exemptionFinding",
    "exemptionDecision",
    "exemptionBasis"
  ],
  "title": "ExemptionDecisionPayload"
}
ExemptionDecisionView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "source": {
      "type": "string",
      "title": "Source"
    },
    "kind": {
      "type": "string",
      "title": "Kind"
    },
    "finding": {
      "type": "string",
      "title": "Finding"
    },
    "decision": {
      "type": "string",
      "enum": [
        "release",
        "redact",
        "exempt"
      ],
      "title": "Decision"
    },
    "basis": {
      "type": "string",
      "title": "Basis"
    },
    "reviewer": {
      "type": "string",
      "title": "Reviewer"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "source",
    "kind",
    "finding",
    "decision",
    "basis",
    "reviewer",
    "created_at_unix_seconds"
  ],
  "title": "ExemptionDecisionView"
}
ExemptionFlagRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "chunk_id": {
      "type": "string",
      "format": "uuid",
      "title": "Chunk Id"
    },
    "rule_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Rule Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "category": {
      "type": "string",
      "title": "Category"
    },
    "matched_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Matched Text"
    },
    "confidence": {
      "type": "number",
      "title": "Confidence"
    },
    "status": {
      "$ref": "#/components/schemas/FlagStatus"
    },
    "reviewed_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reviewed By"
    },
    "reviewed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reviewed At"
    },
    "review_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Reason"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "chunk_id",
    "rule_id",
    "request_id",
    "category",
    "matched_text",
    "confidence",
    "status",
    "reviewed_by",
    "reviewed_at",
    "review_reason",
    "created_at"
  ],
  "title": "ExemptionFlagRead"
}
ExemptionFlagReview
{
  "properties": {
    "status": {
      "$ref": "#/components/schemas/FlagStatus"
    },
    "review_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Reason"
    }
  },
  "type": "object",
  "required": [
    "status"
  ],
  "title": "ExemptionFlagReview"
}
ExemptionNoteCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "add-records-exemption-review",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/ExemptionNotePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "ExemptionNoteCommand"
}
ExemptionNotePayload
{
  "properties": {
    "exemptionNote": {
      "type": "string",
      "minLength": 1,
      "title": "Exemptionnote"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "exemptionNote"
  ],
  "title": "ExemptionNotePayload"
}
ExemptionRuleCreate
{
  "properties": {
    "state_code": {
      "type": "string",
      "title": "State Code"
    },
    "category": {
      "type": "string",
      "title": "Category"
    },
    "rule_type": {
      "$ref": "#/components/schemas/RuleType"
    },
    "rule_definition": {
      "type": "string",
      "title": "Rule Definition"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "enabled": {
      "type": "boolean",
      "title": "Enabled",
      "default": true
    }
  },
  "type": "object",
  "required": [
    "state_code",
    "category",
    "rule_type",
    "rule_definition"
  ],
  "title": "ExemptionRuleCreate"
}
ExemptionRuleRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "state_code": {
      "type": "string",
      "title": "State Code"
    },
    "category": {
      "type": "string",
      "title": "Category"
    },
    "rule_type": {
      "$ref": "#/components/schemas/RuleType"
    },
    "rule_definition": {
      "type": "string",
      "title": "Rule Definition"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "enabled": {
      "type": "boolean",
      "title": "Enabled"
    },
    "version": {
      "type": "integer",
      "title": "Version",
      "default": 1
    },
    "created_by": {
      "type": "string",
      "format": "uuid",
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "state_code",
    "category",
    "rule_type",
    "rule_definition",
    "description",
    "enabled",
    "created_by",
    "created_at"
  ],
  "title": "ExemptionRuleRead"
}
ExemptionRuleUpdate
{
  "properties": {
    "rule_definition": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Rule Definition"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "enabled": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Enabled"
    }
  },
  "type": "object",
  "title": "ExemptionRuleUpdate"
}
ExportReceipt
{
  "properties": {
    "export_path": {
      "type": "string",
      "maxLength": 32768,
      "minLength": 1,
      "title": "Export Path"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "export_path"
  ],
  "title": "ExportReceipt"
}
FeeEstimateCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "estimate-records-fee",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/FeeEstimatePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "FeeEstimateCommand"
}
FeeEstimatePayload
{
  "properties": {
    "feeEstimate": {
      "type": "string",
      "minLength": 1,
      "title": "Feeestimate"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "feeEstimate"
  ],
  "title": "FeeEstimatePayload"
}
FeeEstimateRequest
{
  "properties": {
    "page_count": {
      "type": "integer",
      "title": "Page Count"
    },
    "fee_schedule_id": {
      "type": "string",
      "format": "uuid",
      "title": "Fee Schedule Id"
    }
  },
  "type": "object",
  "required": [
    "page_count",
    "fee_schedule_id"
  ],
  "title": "FeeEstimateRequest"
}
FeeEstimateResponse
{
  "properties": {
    "page_count": {
      "type": "integer",
      "title": "Page Count"
    },
    "unit_price": {
      "type": "number",
      "title": "Unit Price"
    },
    "total": {
      "type": "number",
      "title": "Total"
    },
    "fee_type": {
      "type": "string",
      "title": "Fee Type"
    },
    "description": {
      "type": "string",
      "title": "Description"
    }
  },
  "type": "object",
  "required": [
    "page_count",
    "unit_price",
    "total",
    "fee_type",
    "description"
  ],
  "title": "FeeEstimateResponse"
}
FeeLineCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "add-records-fee-line",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/FeeLinePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "FeeLineCommand"
}
FeeLineItemCreate
{
  "properties": {
    "description": {
      "type": "string",
      "title": "Description"
    },
    "quantity": {
      "type": "integer",
      "title": "Quantity",
      "default": 1
    },
    "unit_price": {
      "type": "number",
      "title": "Unit Price"
    },
    "fee_schedule_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fee Schedule Id"
    }
  },
  "type": "object",
  "required": [
    "description",
    "unit_price"
  ],
  "title": "FeeLineItemCreate"
}
FeeLineItemRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "fee_schedule_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fee Schedule Id"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "quantity": {
      "type": "integer",
      "title": "Quantity"
    },
    "unit_price": {
      "type": "number",
      "title": "Unit Price"
    },
    "total": {
      "type": "number",
      "title": "Total"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "fee_schedule_id",
    "description",
    "quantity",
    "unit_price",
    "total",
    "status",
    "created_at"
  ],
  "title": "FeeLineItemRead"
}
FeeLinePayload
{
  "properties": {
    "feeLineDescription": {
      "type": "string",
      "minLength": 1,
      "title": "Feelinedescription"
    },
    "feeScheduleBasis": {
      "type": "string",
      "minLength": 1,
      "title": "Feeschedulebasis"
    },
    "feeLineAmount": {
      "type": "string",
      "title": "Feelineamount"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "feeLineDescription",
    "feeScheduleBasis",
    "feeLineAmount"
  ],
  "title": "FeeLinePayload"
}
FeeLineView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "schedule_basis": {
      "type": "string",
      "title": "Schedule Basis"
    },
    "amount_cents": {
      "type": "integer",
      "title": "Amount Cents"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "description",
    "schedule_basis",
    "amount_cents",
    "created_at_unix_seconds"
  ],
  "title": "FeeLineView"
}
FeeScheduleCreate
{
  "properties": {
    "jurisdiction": {
      "type": "string",
      "title": "Jurisdiction"
    },
    "fee_type": {
      "type": "string",
      "title": "Fee Type"
    },
    "amount": {
      "type": "number",
      "title": "Amount"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "effective_date": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Effective Date"
    }
  },
  "type": "object",
  "required": [
    "jurisdiction",
    "fee_type",
    "amount"
  ],
  "title": "FeeScheduleCreate"
}
FeeScheduleRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "jurisdiction": {
      "type": "string",
      "title": "Jurisdiction"
    },
    "fee_type": {
      "type": "string",
      "title": "Fee Type"
    },
    "amount": {
      "type": "number",
      "title": "Amount"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "effective_date": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Effective Date"
    },
    "created_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "jurisdiction",
    "fee_type",
    "amount",
    "description",
    "effective_date",
    "created_by",
    "created_at"
  ],
  "title": "FeeScheduleRead"
}
FeeScheduleUpdate
{
  "properties": {
    "fee_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fee Type"
    },
    "amount": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Amount"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "effective_date": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Effective Date"
    }
  },
  "type": "object",
  "title": "FeeScheduleUpdate"
}
FeeWaiverCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "waive-records-fee",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/FeeWaiverPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "FeeWaiverCommand"
}
FeeWaiverCreateRequest
{
  "properties": {
    "waiver_type": {
      "type": "string",
      "title": "Waiver Type"
    },
    "reason": {
      "type": "string",
      "title": "Reason"
    }
  },
  "type": "object",
  "required": [
    "waiver_type",
    "reason"
  ],
  "title": "FeeWaiverCreateRequest"
}
FeeWaiverPayload
{
  "properties": {
    "feeWaiverReason": {
      "type": "string",
      "minLength": 1,
      "title": "Feewaiverreason"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "feeWaiverReason"
  ],
  "title": "FeeWaiverPayload"
}
FeeWaiverReadResponse
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "waiver_type": {
      "type": "string",
      "title": "Waiver Type"
    },
    "reason": {
      "type": "string",
      "title": "Reason"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "review_notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Notes"
    },
    "created_at": {
      "type": "string",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "waiver_type",
    "reason",
    "status",
    "created_at"
  ],
  "title": "FeeWaiverReadResponse"
}
FeeWaiverReviewRequest
{
  "properties": {
    "status": {
      "type": "string",
      "title": "Status"
    },
    "review_notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Notes"
    }
  },
  "type": "object",
  "required": [
    "status"
  ],
  "title": "FeeWaiverReviewRequest"
}
FinishCommand
{
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "fulfill-records-request",
        "close-records-request"
      ],
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/NativePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "FinishCommand"
}
FlagStatus
{
  "type": "string",
  "enum": [
    "flagged",
    "reviewed",
    "accepted",
    "rejected"
  ],
  "title": "FlagStatus"
}
FormPlan
{
  "properties": {
    "action": {
      "type": "string",
      "const": "form-plan",
      "title": "Action"
    },
    "formName": {
      "type": "string",
      "maxLength": 500,
      "title": "Formname",
      "default": ""
    },
    "fields": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 50,
      "title": "Fields"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "FormPlan"
}
GeneratedDraft
{
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    },
    "model": {
      "type": "string",
      "minLength": 1,
      "title": "Model"
    },
    "previous_response_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Previous Response Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "text",
    "model",
    "previous_response_sha256"
  ],
  "title": "GeneratedDraft"
}
HTTPValidationError
{
  "properties": {
    "detail": {
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}
Handoff
{
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "request_id"
  ],
  "title": "Handoff"
}
ImportBundleCreate
{
  "properties": {
    "job_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Job Id"
    },
    "connector_type": {
      "type": "string",
      "minLength": 1,
      "title": "Connector Type"
    },
    "source": {
      "$ref": "#/components/schemas/SourceCreate"
    },
    "sources": {
      "items": {
        "$ref": "#/components/schemas/SourceCreate"
      },
      "type": "array",
      "title": "Sources"
    },
    "titles": {
      "items": {
        "$ref": "#/components/schemas/TitleCreate"
      },
      "type": "array",
      "title": "Titles"
    },
    "chapters": {
      "items": {
        "$ref": "#/components/schemas/ChapterCreate"
      },
      "type": "array",
      "title": "Chapters"
    },
    "sections": {
      "items": {
        "$ref": "#/components/schemas/SectionCreate"
      },
      "type": "array",
      "title": "Sections"
    },
    "versions": {
      "items": {
        "$ref": "#/components/schemas/SectionVersionCreate"
      },
      "type": "array",
      "title": "Versions"
    },
    "provenance": {
      "additionalProperties": true,
      "type": "object",
      "title": "Provenance"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "connector_type",
    "source"
  ],
  "title": "ImportBundleCreate",
  "description": "Request body for local fixture/file-drop import jobs."
}
InclusionStatus
{
  "type": "string",
  "enum": [
    "included",
    "excluded",
    "pending"
  ],
  "title": "InclusionStatus"
}
IngestionStats
{
  "properties": {
    "total_sources": {
      "type": "integer",
      "title": "Total Sources"
    },
    "active_sources": {
      "type": "integer",
      "title": "Active Sources"
    },
    "total_documents": {
      "type": "integer",
      "title": "Total Documents"
    },
    "documents_by_status": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Documents By Status"
    },
    "total_chunks": {
      "type": "integer",
      "title": "Total Chunks"
    }
  },
  "type": "object",
  "required": [
    "total_sources",
    "active_sources",
    "total_documents",
    "documents_by_status",
    "total_chunks"
  ],
  "title": "IngestionStats"
}
IngestionStatus
{
  "type": "string",
  "enum": [
    "pending",
    "processing",
    "completed",
    "failed"
  ],
  "title": "IngestionStatus"
}
InitiativeInput
{
  "properties": {
    "expected_revision": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "policy": {
      "$ref": "#/components/schemas/PolicySelection"
    },
    "responsible_staff": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Responsible Staff"
    },
    "target": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ],
      "title": "Target"
    },
    "unit": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "title": "Unit"
    },
    "due_on": {
      "type": "string",
      "format": "date",
      "title": "Due On"
    },
    "status": {
      "type": "string",
      "enum": [
        "planned",
        "active",
        "completed",
        "cancelled"
      ],
      "title": "Status",
      "default": "planned"
    },
    "milestones": {
      "items": {
        "$ref": "#/components/schemas/Milestone"
      },
      "type": "array",
      "maxItems": 100,
      "title": "Milestones"
    },
    "measurements": {
      "items": {
        "$ref": "#/components/schemas/Measurement"
      },
      "type": "array",
      "maxItems": 1000,
      "title": "Measurements"
    },
    "note": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "policy",
    "responsible_staff",
    "target",
    "unit",
    "due_on",
    "note"
  ],
  "title": "InitiativeInput"
}
InspectionInput
{
  "properties": {
    "expected_revision": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "property_reference": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Property Reference"
    },
    "inspection_reference": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "title": "Inspection Reference"
    },
    "dataset_kind": {
      "type": "string",
      "enum": [
        "municipal",
        "fictional"
      ],
      "title": "Dataset Kind"
    },
    "inspector_notes": {
      "type": "string",
      "maxLength": 10000,
      "minLength": 1,
      "title": "Inspector Notes"
    },
    "photo_observations": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Photo Observations"
    },
    "voice_notes": {
      "type": "string",
      "maxLength": 10000,
      "title": "Voice Notes",
      "default": ""
    },
    "evidence": {
      "items": {
        "$ref": "#/components/schemas/Evidence"
      },
      "type": "array",
      "maxItems": 10,
      "title": "Evidence"
    },
    "linked_sources": {
      "items": {
        "$ref": "#/components/schemas/townlight_inspections__workflow_models__SourceLink"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Linked Sources"
    },
    "assigned_to": {
      "type": "string",
      "maxLength": 255,
      "title": "Assigned To",
      "default": ""
    },
    "staff_notes": {
      "type": "string",
      "maxLength": 10000,
      "title": "Staff Notes",
      "default": ""
    },
    "notice_draft": {
      "type": "string",
      "maxLength": 10000,
      "title": "Notice Draft",
      "default": ""
    },
    "review_state": {
      "type": "string",
      "enum": [
        "draft",
        "follow_up",
        "reviewed"
      ],
      "title": "Review State",
      "default": "draft"
    },
    "review_notes": {
      "type": "string",
      "maxLength": 4000,
      "title": "Review Notes",
      "default": ""
    },
    "public_summary": {
      "type": "string",
      "maxLength": 10000,
      "title": "Public Summary",
      "default": ""
    },
    "analysis": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/AnalysisRecord"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "property_reference",
    "inspection_reference",
    "dataset_kind",
    "inspector_notes"
  ],
  "title": "InspectionInput"
}
IntakeInput
{
  "properties": {
    "expected_revision": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision"
    },
    "project_name": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Project Name"
    },
    "project_description": {
      "type": "string",
      "maxLength": 10000,
      "minLength": 1,
      "title": "Project Description"
    },
    "location": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Location"
    },
    "applicant_contact": {
      "type": "string",
      "maxLength": 2000,
      "title": "Applicant Contact",
      "default": ""
    },
    "requirement_revision": {
      "type": "string",
      "format": "uuid",
      "title": "Requirement Revision"
    },
    "materials": {
      "items": {
        "$ref": "#/components/schemas/MaterialReview"
      },
      "type": "array",
      "maxItems": 100,
      "minItems": 1,
      "title": "Materials"
    },
    "linked_sources": {
      "items": {
        "$ref": "#/components/schemas/townlight_permitting__workflow_models__SourceLink"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Linked Sources"
    },
    "staff_notes": {
      "type": "string",
      "maxLength": 10000,
      "title": "Staff Notes",
      "default": ""
    },
    "assigned_to": {
      "type": "string",
      "maxLength": 255,
      "title": "Assigned To",
      "default": ""
    },
    "review_state": {
      "type": "string",
      "enum": [
        "draft",
        "follow_up",
        "reviewed"
      ],
      "title": "Review State",
      "default": "draft"
    },
    "review_notes": {
      "type": "string",
      "maxLength": 4000,
      "title": "Review Notes",
      "default": ""
    },
    "public_summary": {
      "type": "string",
      "maxLength": 10000,
      "title": "Public Summary",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "project_name",
    "project_description",
    "location",
    "requirement_revision",
    "materials"
  ],
  "title": "IntakeInput"
}
InterpretationNoteCreate
{
  "properties": {
    "note_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Note Id"
    },
    "note_text": {
      "type": "string",
      "minLength": 1,
      "title": "Note Text"
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "draft"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "note_text"
  ],
  "title": "InterpretationNoteCreate",
  "description": "Request body for staff-only interpretation notes."
}
InterviewRequest
{
  "properties": {
    "last_answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Answer"
    },
    "last_field": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Field"
    },
    "skipped_fields": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Skipped Fields"
    }
  },
  "type": "object",
  "title": "InterviewRequest"
}
InterviewResponse
{
  "properties": {
    "question": {
      "type": "string",
      "title": "Question"
    },
    "target_field": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Target Field"
    },
    "all_complete": {
      "type": "boolean",
      "title": "All Complete"
    },
    "completed_fields": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Completed Fields"
    },
    "onboarding_status": {
      "type": "string",
      "title": "Onboarding Status"
    },
    "skipped_fields": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Skipped Fields"
    }
  },
  "type": "object",
  "required": [
    "question",
    "target_field",
    "all_complete",
    "completed_fields",
    "onboarding_status",
    "skipped_fields"
  ],
  "title": "InterviewResponse"
}
ManagedFileReceipt
{
  "properties": {
    "original_path": {
      "type": "string",
      "minLength": 1,
      "title": "Original Path"
    },
    "stored_path": {
      "type": "string",
      "minLength": 1,
      "title": "Stored Path"
    },
    "file_name": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "File Name"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Sha256"
    },
    "size_bytes": {
      "type": "integer",
      "maximum": 2147483647.0,
      "minimum": 0.0,
      "title": "Size Bytes"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "original_path",
    "stored_path",
    "file_name",
    "sha256",
    "size_bytes"
  ],
  "title": "ManagedFileReceipt"
}
ManagedSource
{
  "properties": {
    "original_path": {
      "type": "string",
      "title": "Original Path"
    },
    "stored_path": {
      "type": "string",
      "title": "Stored Path"
    },
    "file_name": {
      "type": "string",
      "title": "File Name"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Sha256"
    },
    "size_bytes": {
      "type": "integer",
      "minimum": 0.0,
      "title": "Size Bytes"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "original_path",
    "stored_path",
    "file_name",
    "sha256",
    "size_bytes"
  ],
  "title": "ManagedSource"
}
Material
{
  "properties": {
    "material_id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,80}$",
      "title": "Material Id"
    },
    "description": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Description"
    },
    "citation": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Citation"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "material_id",
    "description",
    "citation"
  ],
  "title": "Material"
}
MaterialReview
{
  "properties": {
    "material_id": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "title": "Material Id"
    },
    "status": {
      "type": "string",
      "enum": [
        "not_reviewed",
        "provided",
        "missing",
        "unclear"
      ],
      "title": "Status",
      "default": "not_reviewed"
    },
    "note": {
      "type": "string",
      "maxLength": 2000,
      "title": "Note",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "material_id"
  ],
  "title": "MaterialReview"
}
Measurement
{
  "properties": {
    "recorded_on": {
      "type": "string",
      "format": "date",
      "title": "Recorded On"
    },
    "value": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ],
      "title": "Value"
    },
    "evidence": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Evidence"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "recorded_on",
    "value",
    "evidence"
  ],
  "title": "Measurement"
}
MediaAnalysis
{
  "properties": {
    "items": {
      "items": {
        "$ref": "#/components/schemas/EvidenceItem"
      },
      "type": "array",
      "maxItems": 10,
      "minItems": 1,
      "title": "Items"
    },
    "code_links": {
      "items": {
        "$ref": "#/components/schemas/CodeLink"
      },
      "type": "array",
      "maxItems": 30,
      "title": "Code Links"
    },
    "inspector_supplied_text": {
      "type": "string",
      "maxLength": 10000,
      "title": "Inspector Supplied Text",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "items"
  ],
  "title": "MediaAnalysis"
}
MeetingInput
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Title"
    },
    "scheduled_start": {
      "type": "string",
      "format": "date-time",
      "title": "Scheduled Start"
    },
    "location": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Location"
    },
    "meeting_type": {
      "type": "string",
      "enum": [
        "regular",
        "special",
        "emergency",
        "closed_session",
        "executive"
      ],
      "title": "Meeting Type",
      "default": "regular"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "scheduled_start",
    "location"
  ],
  "title": "MeetingInput"
}
MeetingLink
{
  "properties": {
    "source_id": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Expected Sha256"
    },
    "relation": {
      "type": "string",
      "enum": [
        "hearing",
        "context",
        "precedent"
      ],
      "title": "Relation"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "expected_sha256",
    "relation"
  ],
  "title": "MeetingLink"
}
MeetingSearch
{
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "query"
  ],
  "title": "MeetingSearch"
}
MeetingStageInput
{
  "properties": {
    "to_status": {
      "type": "string",
      "enum": [
        "SCHEDULED",
        "NOTICED",
        "PACKET_POSTED",
        "IN_PROGRESS",
        "RECESSED",
        "ADJOURNED",
        "TRANSCRIPT_READY",
        "MINUTES_DRAFTED",
        "MINUTES_POSTED",
        "MINUTES_ADOPTED",
        "MINUTES_SIGNED",
        "ARCHIVED",
        "CANCELLED"
      ],
      "title": "To Status"
    },
    "statutory_basis": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Basis"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "to_status"
  ],
  "title": "MeetingStageInput"
}
MeetingsSearch
{
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "query"
  ],
  "title": "MeetingsSearch"
}
MeetingsSourceSelection
{
  "properties": {
    "source_id": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Expected Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "expected_sha256"
  ],
  "title": "MeetingsSourceSelection"
}
MessageCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "add-records-message",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/MessagePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "MessageCommand"
}
MessageCreate
{
  "properties": {
    "message_text": {
      "type": "string",
      "title": "Message Text"
    },
    "is_internal": {
      "type": "boolean",
      "title": "Is Internal",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "message_text"
  ],
  "title": "MessageCreate"
}
MessagePayload
{
  "properties": {
    "requestMessageBody": {
      "type": "string",
      "minLength": 1,
      "title": "Requestmessagebody"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "requestMessageBody"
  ],
  "title": "MessagePayload"
}
MessageRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "sender_type": {
      "type": "string",
      "title": "Sender Type"
    },
    "sender_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sender Id"
    },
    "message_text": {
      "type": "string",
      "title": "Message Text"
    },
    "is_internal": {
      "type": "boolean",
      "title": "Is Internal"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "sender_type",
    "sender_id",
    "message_text",
    "is_internal",
    "created_at"
  ],
  "title": "MessageRead"
}
MessageView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "author": {
      "type": "string",
      "title": "Author"
    },
    "author_role": {
      "type": "string",
      "title": "Author Role"
    },
    "body": {
      "type": "string",
      "title": "Body"
    },
    "visibility": {
      "type": "string",
      "title": "Visibility"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "author",
    "author_role",
    "body",
    "visibility",
    "created_at_unix_seconds"
  ],
  "title": "MessageView"
}
Milestone
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Title"
    },
    "due_on": {
      "type": "string",
      "format": "date",
      "title": "Due On"
    },
    "completed_on": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Completed On"
    },
    "evidence": {
      "type": "string",
      "maxLength": 2000,
      "title": "Evidence",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "due_on"
  ],
  "title": "Milestone"
}
MinutesDecision
{
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "post",
        "adopt",
        "sign"
      ],
      "title": "Action"
    },
    "note": {
      "type": "string",
      "title": "Note",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "MinutesDecision"
}
ModelRegistryCreate
{
  "properties": {
    "model_name": {
      "type": "string",
      "title": "Model Name"
    },
    "model_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Version"
    },
    "parameter_count": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parameter Count"
    },
    "license": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "License"
    },
    "model_card_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Card Url"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active",
      "default": false
    },
    "context_window_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Context Window Size"
    },
    "supports_ner": {
      "type": "boolean",
      "title": "Supports Ner",
      "default": false
    },
    "supports_vision": {
      "type": "boolean",
      "title": "Supports Vision",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "model_name"
  ],
  "title": "ModelRegistryCreate",
  "description": "Schema for creating a new model_registry record (POST body)."
}
ModelRegistryRead
{
  "properties": {
    "id": {
      "type": "integer",
      "title": "Id"
    },
    "model_name": {
      "type": "string",
      "title": "Model Name"
    },
    "model_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Version"
    },
    "parameter_count": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parameter Count"
    },
    "license": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "License"
    },
    "model_card_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Card Url"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    },
    "added_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Added At"
    },
    "context_window_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Context Window Size"
    },
    "supports_ner": {
      "type": "boolean",
      "title": "Supports Ner"
    },
    "supports_vision": {
      "type": "boolean",
      "title": "Supports Vision"
    }
  },
  "type": "object",
  "required": [
    "id",
    "model_name",
    "is_active",
    "supports_ner",
    "supports_vision"
  ],
  "title": "ModelRegistryRead",
  "description": "Schema for returning a model_registry record (GET response).\n\n``from_attributes=True`` allows construction directly from an ORM instance."
}
ModelRegistryUpdate
{
  "properties": {
    "model_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Name"
    },
    "model_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Version"
    },
    "parameter_count": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parameter Count"
    },
    "license": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "License"
    },
    "model_card_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Model Card Url"
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    },
    "context_window_size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Context Window Size"
    },
    "supports_ner": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Supports Ner"
    },
    "supports_vision": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Supports Vision"
    }
  },
  "type": "object",
  "title": "ModelRegistryUpdate",
  "description": "Schema for partially updating a model_registry record (PATCH body).\n\nEvery field is optional so callers can send only the fields they want to\nchange."
}
MotionCorrection
{
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "title": "Reason"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "text",
    "reason"
  ],
  "title": "MotionCorrection"
}
MotionInput
{
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    },
    "seconded_by": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Seconded By"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "text"
  ],
  "title": "MotionInput"
}
NativePayload
{
  "properties": {},
  "additionalProperties": false,
  "type": "object",
  "title": "NativePayload"
}
NativeRequestRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "requester_name": {
      "type": "string",
      "title": "Requester Name"
    },
    "requester_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Email"
    },
    "requester_phone": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Phone"
    },
    "requester_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Type"
    },
    "date_received": {
      "type": "string",
      "format": "date-time",
      "title": "Date Received"
    },
    "statutory_deadline": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Deadline"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "status": {
      "$ref": "#/components/schemas/RequestStatus"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "created_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "response_draft": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Response Draft"
    },
    "review_notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Notes"
    },
    "department_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Department Id"
    },
    "estimated_fee": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Estimated Fee"
    },
    "fee_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fee Status"
    },
    "fee_waiver_requested": {
      "type": "boolean",
      "title": "Fee Waiver Requested",
      "default": false
    },
    "priority": {
      "type": "string",
      "title": "Priority",
      "default": "normal"
    },
    "scope_assessment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scope Assessment"
    },
    "closed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Closed At"
    },
    "closure_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Closure Reason"
    },
    "desktop_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Desktop Id"
    },
    "public_tracking_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Public Tracking Number"
    },
    "submitted_via": {
      "type": "string",
      "title": "Submitted Via"
    },
    "deadline_label": {
      "type": "string",
      "title": "Deadline Label"
    },
    "deadline_basis": {
      "type": "string",
      "title": "Deadline Basis"
    },
    "deadline_reviewed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Deadline Reviewed At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "requester_name",
    "requester_email",
    "date_received",
    "statutory_deadline",
    "description",
    "status",
    "assigned_to",
    "created_by",
    "created_at",
    "response_draft",
    "review_notes",
    "desktop_id",
    "public_tracking_number",
    "submitted_via",
    "deadline_label",
    "deadline_basis",
    "deadline_reviewed_at"
  ],
  "title": "NativeRequestRead"
}
NoticeDocumentInput
{
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "text"
  ],
  "title": "NoticeDocumentInput"
}
NoticeDraft
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "body": {
      "type": "string",
      "maxLength": 100000,
      "minLength": 1,
      "title": "Body"
    },
    "notice_type": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "title": "Notice Type"
    },
    "statutory_basis": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Statutory Basis"
    },
    "event_date": {
      "type": "string",
      "format": "date",
      "title": "Event Date"
    },
    "lead_days": {
      "type": "integer",
      "maximum": 365.0,
      "minimum": 0.0,
      "title": "Lead Days"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "body",
    "notice_type",
    "statutory_basis",
    "event_date",
    "lead_days"
  ],
  "title": "NoticeDraft"
}
NoticeInput
{
  "properties": {
    "notice_type": {
      "type": "string",
      "enum": [
        "regular",
        "special",
        "emergency",
        "closed_session",
        "executive"
      ],
      "title": "Notice Type"
    },
    "posted_at": {
      "type": "string",
      "format": "date-time",
      "title": "Posted At"
    },
    "minimum_notice_hours": {
      "type": "integer",
      "minimum": 0.0,
      "title": "Minimum Notice Hours"
    },
    "statutory_basis": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Basis"
    },
    "approved_by": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Approved By"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "notice_type",
    "posted_at",
    "minimum_notice_hours"
  ],
  "title": "NoticeInput"
}
NoticeProofInput
{
  "properties": {
    "location": {
      "type": "string",
      "minLength": 1,
      "title": "Location"
    },
    "note": {
      "type": "string",
      "title": "Note",
      "default": ""
    },
    "document_delivery_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Document Delivery Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "location"
  ],
  "title": "NoticeProofInput"
}
NotificationLogRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "template_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Template Id"
    },
    "recipient_email": {
      "type": "string",
      "title": "Recipient Email"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Request Id"
    },
    "channel": {
      "type": "string",
      "title": "Channel"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "sent_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sent At"
    },
    "error_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Message"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "template_id",
    "recipient_email",
    "request_id",
    "channel",
    "status",
    "sent_at",
    "error_message",
    "created_at"
  ],
  "title": "NotificationLogRead"
}
NotificationTemplateCreate
{
  "properties": {
    "event_type": {
      "type": "string",
      "title": "Event Type"
    },
    "channel": {
      "type": "string",
      "title": "Channel",
      "default": "email"
    },
    "subject_template": {
      "type": "string",
      "title": "Subject Template"
    },
    "body_template": {
      "type": "string",
      "title": "Body Template"
    }
  },
  "type": "object",
  "required": [
    "event_type",
    "subject_template",
    "body_template"
  ],
  "title": "NotificationTemplateCreate"
}
NotificationTemplateRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "event_type": {
      "type": "string",
      "title": "Event Type"
    },
    "channel": {
      "type": "string",
      "title": "Channel"
    },
    "subject_template": {
      "type": "string",
      "title": "Subject Template"
    },
    "body_template": {
      "type": "string",
      "title": "Body Template"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "event_type",
    "channel",
    "subject_template",
    "body_template",
    "is_active",
    "created_at"
  ],
  "title": "NotificationTemplateRead"
}
NotificationTemplateUpdate
{
  "properties": {
    "subject_template": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Subject Template"
    },
    "body_template": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Body Template"
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    }
  },
  "type": "object",
  "title": "NotificationTemplateUpdate"
}
NotificationView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "notification_id": {
      "type": "string",
      "title": "Notification Id"
    },
    "module_id": {
      "type": "string",
      "title": "Module Id"
    },
    "record_id": {
      "type": "string",
      "title": "Record Id"
    },
    "audience": {
      "type": "string",
      "title": "Audience"
    },
    "channel": {
      "type": "string",
      "title": "Channel"
    },
    "subject": {
      "type": "string",
      "title": "Subject"
    },
    "body": {
      "type": "string",
      "title": "Body"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    },
    "sent_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sent At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "notification_id",
    "module_id",
    "record_id",
    "audience",
    "channel",
    "subject",
    "body",
    "status",
    "created_at_unix_seconds",
    "sent_at_unix_seconds"
  ],
  "title": "NotificationView"
}
OllamaModelInfo
{
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Size"
    },
    "details": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Details"
    }
  },
  "type": "object",
  "required": [
    "name"
  ],
  "title": "OllamaModelInfo"
}
OllamaStatus
{
  "properties": {
    "status": {
      "type": "string",
      "title": "Status"
    },
    "models": {
      "items": {
        "$ref": "#/components/schemas/OllamaModelInfo"
      },
      "type": "array",
      "title": "Models"
    }
  },
  "type": "object",
  "required": [
    "status",
    "models"
  ],
  "title": "OllamaStatus"
}
OperationalMetrics
{
  "properties": {
    "average_response_time_days": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Average Response Time Days"
    },
    "median_response_time_days": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Median Response Time Days"
    },
    "requests_by_status": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Requests By Status"
    },
    "requests_by_department": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Requests By Department"
    },
    "deadline_compliance_rate": {
      "type": "number",
      "title": "Deadline Compliance Rate"
    },
    "total_open": {
      "type": "integer",
      "title": "Total Open"
    },
    "total_closed": {
      "type": "integer",
      "title": "Total Closed"
    },
    "total_overdue": {
      "type": "integer",
      "title": "Total Overdue"
    },
    "clarification_frequency": {
      "type": "number",
      "title": "Clarification Frequency"
    },
    "top_request_topics": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Top Request Topics"
    }
  },
  "type": "object",
  "required": [
    "average_response_time_days",
    "median_response_time_days",
    "requests_by_status",
    "requests_by_department",
    "deadline_compliance_rate",
    "total_open",
    "total_closed",
    "total_overdue",
    "clarification_frequency",
    "top_request_topics"
  ],
  "title": "OperationalMetrics"
}
Outline
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Title"
    },
    "question_ids": {
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "type": "array",
      "maxItems": 50,
      "minItems": 1,
      "title": "Question Ids"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title",
    "question_ids"
  ],
  "title": "Outline"
}
Packet
{
  "properties": {
    "expected_revision": {
      "type": "string",
      "format": "uuid",
      "title": "Expected Revision"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "staff_only",
        "records_copy"
      ],
      "title": "Visibility"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "expected_revision",
    "visibility"
  ],
  "title": "Packet"
}
PacketInput
{
  "properties": {
    "agenda_item_ids": {
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "type": "array",
      "title": "Agenda Item Ids"
    },
    "source_files": {
      "items": {
        "$ref": "#/components/schemas/ManagedSource"
      },
      "type": "array",
      "title": "Source Files"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "agenda_item_ids"
  ],
  "title": "PacketInput"
}
Pathway
{
  "properties": {
    "project_type": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "title": "Project Type"
    },
    "proposal": {
      "type": "string",
      "maxLength": 4000,
      "title": "Proposal",
      "default": ""
    },
    "location_context": {
      "type": "string",
      "maxLength": 1000,
      "title": "Location Context",
      "default": ""
    },
    "requirement_revision": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requirement Revision"
    },
    "fee_link": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/townlight_permitting__workflow_models__SourceLink"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "project_type"
  ],
  "title": "Pathway"
}
PathwayStep
{
  "properties": {
    "step": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Step"
    },
    "citation": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Citation"
    },
    "typical_time": {
      "type": "string",
      "maxLength": 1000,
      "title": "Typical Time",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "step",
    "citation"
  ],
  "title": "PathwayStep"
}
PlainLanguageSummaryCreate
{
  "properties": {
    "summary_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Summary Id"
    },
    "section_version_id": {
      "type": "string",
      "minLength": 1,
      "title": "Section Version Id"
    },
    "summary_text": {
      "type": "string",
      "minLength": 1,
      "title": "Summary Text"
    },
    "language_code": {
      "type": "string",
      "title": "Language Code",
      "default": "en"
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "draft"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "section_version_id",
    "summary_text"
  ],
  "title": "PlainLanguageSummaryCreate",
  "description": "Request body for staff-drafted plain-language summaries."
}
PolicySelection
{
  "properties": {
    "plan_id": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "title": "Plan Id"
    },
    "revision_id": {
      "type": "string",
      "maxLength": 36,
      "minLength": 36,
      "title": "Revision Id"
    },
    "policy_id": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "title": "Policy Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "plan_id",
    "revision_id",
    "policy_id"
  ],
  "title": "PolicySelection"
}
PortalModeResponse
{
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "public",
        "private"
      ],
      "title": "Mode",
      "description": "Active portal posture for this deployment. ``public`` = minimal resident surface (landing + authenticated records-request submission + resident registration) reachable without staff auth. ``private`` = staff-only; no public routes, no resident self-registration."
    }
  },
  "type": "object",
  "required": [
    "mode"
  ],
  "title": "PortalModeResponse",
  "description": "T5D — schema for ``GET /config/portal-mode``.\n\nExposed to the frontend on boot so it can branch routing without a\nuser-identity lookup. The payload is intentionally the single field\nbelow — no staff config, no user state, no schema version."
}
PrepareArtifact
{
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "response",
        "release-package"
      ],
      "title": "Kind"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "kind"
  ],
  "title": "PrepareArtifact"
}
Proof
{
  "properties": {
    "sequence": {
      "type": "integer",
      "minimum": 1.0,
      "title": "Sequence"
    },
    "filename": {
      "type": "string",
      "maxLength": 150,
      "minLength": 1,
      "title": "Filename"
    },
    "content_base64": {
      "type": "string",
      "maxLength": 7000000,
      "minLength": 1,
      "title": "Content Base64"
    },
    "location": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Location"
    },
    "published_at": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "title": "Published At"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sequence",
    "filename",
    "content_base64",
    "location",
    "published_at"
  ],
  "title": "Proof"
}
Proposal
{
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,64}$",
      "title": "Id"
    },
    "version_id": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Version Id"
    },
    "meeting_id": {
      "type": "string",
      "format": "uuid",
      "title": "Meeting Id"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "ordinance_number": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "title": "Ordinance Number"
    },
    "proposed_text": {
      "type": "string",
      "maxLength": 1000000,
      "minLength": 1,
      "title": "Proposed Text"
    },
    "supersedes_id": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Supersedes Id"
    },
    "reconciliation_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Reconciliation Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "version_id",
    "meeting_id",
    "title",
    "ordinance_number",
    "proposed_text"
  ],
  "title": "Proposal"
}
PublicExplore
{
  "properties": {
    "goal": {
      "type": "string",
      "maxLength": 500,
      "title": "Goal",
      "default": ""
    },
    "topic": {
      "type": "string",
      "maxLength": 160,
      "title": "Topic",
      "default": ""
    },
    "neighborhood": {
      "type": "string",
      "maxLength": 255,
      "title": "Neighborhood",
      "default": ""
    },
    "plan_type": {
      "type": "string",
      "maxLength": 120,
      "title": "Plan Type",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "title": "PublicExplore"
}
PublicIntake
{
  "properties": {
    "requester": {
      "type": "string",
      "minLength": 1,
      "title": "Requester"
    },
    "requesterContact": {
      "type": "string",
      "minLength": 1,
      "title": "Requestercontact"
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "title": "Summary"
    },
    "deadline": {
      "type": "string",
      "title": "Deadline",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "requester",
    "requesterContact",
    "summary"
  ],
  "title": "PublicIntake"
}
PublicLookup
{
  "properties": {
    "trackingNumber": {
      "type": "string",
      "minLength": 1,
      "title": "Trackingnumber"
    },
    "requesterContact": {
      "type": "string",
      "minLength": 1,
      "title": "Requestercontact"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "trackingNumber",
    "requesterContact"
  ],
  "title": "PublicLookup"
}
PublicMessage
{
  "properties": {
    "trackingNumber": {
      "type": "string",
      "minLength": 1,
      "title": "Trackingnumber"
    },
    "requesterContact": {
      "type": "string",
      "minLength": 1,
      "title": "Requestercontact"
    },
    "publicRequestMessage": {
      "type": "string",
      "minLength": 1,
      "title": "Publicrequestmessage"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "trackingNumber",
    "requesterContact",
    "publicRequestMessage"
  ],
  "title": "PublicMessage"
}
PublicStatusView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "label": {
      "type": "string",
      "title": "Label"
    },
    "summary": {
      "type": "string",
      "title": "Summary"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "label",
    "summary",
    "status",
    "created_at_unix_seconds"
  ],
  "title": "PublicStatusView"
}
PublicationView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "source_module": {
      "type": "string",
      "title": "Source Module"
    },
    "source_record_id": {
      "type": "string",
      "title": "Source Record Id"
    },
    "record_type": {
      "type": "string",
      "title": "Record Type"
    },
    "public_payload": {
      "type": "string",
      "title": "Public Payload"
    },
    "payload_hash": {
      "type": "string",
      "title": "Payload Hash"
    },
    "published_at_unix_seconds": {
      "type": "integer",
      "title": "Published At Unix Seconds"
    },
    "retracted_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Retracted At Unix Seconds"
    },
    "retracted_by": {
      "type": "string",
      "title": "Retracted By",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "source_module",
    "source_record_id",
    "record_type",
    "public_payload",
    "payload_hash",
    "published_at_unix_seconds"
  ],
  "title": "PublicationView"
}
PublishingPlan
{
  "properties": {
    "action": {
      "type": "string",
      "const": "publishing-workflow",
      "title": "Action"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "title": "Title",
      "default": ""
    },
    "hasReview": {
      "type": "boolean",
      "title": "Hasreview",
      "default": false
    },
    "hasPlainLanguage": {
      "type": "boolean",
      "title": "Hasplainlanguage",
      "default": false
    },
    "hasTranslationReview": {
      "type": "boolean",
      "title": "Hastranslationreview",
      "default": false
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "PublishingPlan"
}
Question
{
  "properties": {
    "jurisdiction": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Jurisdiction"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    },
    "question": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Question"
    },
    "kind": {
      "type": "string",
      "enum": [
        "use",
        "dimension"
      ],
      "title": "Kind"
    },
    "key": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Key"
    },
    "audience": {
      "type": "string",
      "enum": [
        "resident",
        "staff"
      ],
      "title": "Audience",
      "default": "resident"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "jurisdiction",
    "query",
    "question",
    "kind",
    "key"
  ],
  "title": "Question"
}
QuestionAnswerRequest
{
  "properties": {
    "question": {
      "type": "string",
      "minLength": 1,
      "title": "Question"
    },
    "section_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section Number"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "As Of"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "question"
  ],
  "title": "QuestionAnswerRequest",
  "description": "Request body for citation-grounded code Q&A."
}
RecordsDocumentView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "attachment_id": {
      "type": "string",
      "title": "Attachment Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "original_path": {
      "type": "string",
      "title": "Original Path"
    },
    "stored_path": {
      "type": "string",
      "title": "Stored Path"
    },
    "citation": {
      "type": "string",
      "title": "Citation"
    },
    "sha256": {
      "type": "string",
      "title": "Sha256"
    },
    "size_bytes": {
      "type": "integer",
      "title": "Size Bytes"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "added_by": {
      "type": "string",
      "title": "Added By"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    },
    "release_original_path": {
      "type": "string",
      "title": "Release Original Path",
      "default": ""
    },
    "release_stored_path": {
      "type": "string",
      "title": "Release Stored Path",
      "default": ""
    },
    "release_file_name": {
      "type": "string",
      "title": "Release File Name",
      "default": ""
    },
    "release_sha256": {
      "type": "string",
      "title": "Release Sha256",
      "default": ""
    },
    "release_size_bytes": {
      "type": "integer",
      "title": "Release Size Bytes",
      "default": 0
    },
    "release_status": {
      "type": "string",
      "title": "Release Status",
      "default": ""
    },
    "release_note": {
      "type": "string",
      "title": "Release Note",
      "default": ""
    },
    "release_added_by": {
      "type": "string",
      "title": "Release Added By",
      "default": ""
    },
    "release_added_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Release Added At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "attachment_id",
    "title",
    "original_path",
    "stored_path",
    "citation",
    "sha256",
    "size_bytes",
    "status",
    "added_by",
    "created_at_unix_seconds"
  ],
  "title": "RecordsDocumentView"
}
RecordsOperationRead
{
  "properties": {
    "action": {
      "type": "string",
      "title": "Action"
    },
    "message": {
      "type": "string",
      "title": "Message"
    },
    "request": {
      "$ref": "#/components/schemas/RecordsView"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "message",
    "request"
  ],
  "title": "RecordsOperationRead"
}
RecordsStateRead
{
  "properties": {
    "demo_fixture": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Demo Fixture"
    },
    "records_requests": {
      "items": {
        "$ref": "#/components/schemas/RecordsView"
      },
      "type": "array",
      "title": "Records Requests"
    },
    "notification_events": {
      "items": {
        "$ref": "#/components/schemas/NotificationView"
      },
      "type": "array",
      "title": "Notification Events"
    },
    "publication_events": {
      "items": {
        "$ref": "#/components/schemas/PublicationView"
      },
      "type": "array",
      "title": "Publication Events"
    },
    "audit_entries": {
      "items": {
        "$ref": "#/components/schemas/AuditView"
      },
      "type": "array",
      "title": "Audit Entries"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "records_requests"
  ],
  "title": "RecordsStateRead"
}
RecordsView
{
  "properties": {
    "request_id": {
      "type": "string",
      "title": "Request Id"
    },
    "id": {
      "type": "string",
      "title": "Id"
    },
    "public_tracking_number": {
      "type": "string",
      "title": "Public Tracking Number"
    },
    "requester": {
      "type": "string",
      "title": "Requester"
    },
    "requester_contact": {
      "type": "string",
      "title": "Requester Contact"
    },
    "submitted_via": {
      "type": "string",
      "title": "Submitted Via"
    },
    "summary": {
      "type": "string",
      "title": "Summary"
    },
    "deadline": {
      "type": "string",
      "title": "Deadline"
    },
    "deadline_basis": {
      "type": "string",
      "title": "Deadline Basis"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "assigned_to": {
      "type": "string",
      "title": "Assigned To"
    },
    "clarification_notes": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Clarification Notes"
    },
    "search_notes": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Search Notes"
    },
    "search_sessions": {
      "items": {
        "$ref": "#/components/schemas/SearchReceiptView"
      },
      "type": "array",
      "title": "Search Sessions"
    },
    "exemption_reviews": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Exemption Reviews"
    },
    "exemption_decisions": {
      "items": {
        "$ref": "#/components/schemas/ExemptionDecisionView"
      },
      "type": "array",
      "title": "Exemption Decisions"
    },
    "fee_estimate": {
      "type": "string",
      "title": "Fee Estimate"
    },
    "fee_line_items": {
      "items": {
        "$ref": "#/components/schemas/FeeLineView"
      },
      "type": "array",
      "title": "Fee Line Items"
    },
    "fee_waiver_reason": {
      "type": "string",
      "title": "Fee Waiver Reason"
    },
    "citations": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Citations"
    },
    "response_draft": {
      "type": "string",
      "title": "Response Draft"
    },
    "approval_notes": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Approval Notes"
    },
    "exports": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Exports"
    },
    "documents": {
      "items": {
        "$ref": "#/components/schemas/RecordsDocumentView"
      },
      "type": "array",
      "title": "Documents"
    },
    "release_packages": {
      "items": {
        "$ref": "#/components/schemas/ReleasePackageView"
      },
      "type": "array",
      "title": "Release Packages"
    },
    "timeline": {
      "items": {
        "$ref": "#/components/schemas/TimelineView"
      },
      "type": "array",
      "title": "Timeline"
    },
    "public_status_events": {
      "items": {
        "$ref": "#/components/schemas/PublicStatusView"
      },
      "type": "array",
      "title": "Public Status Events"
    },
    "messages": {
      "items": {
        "$ref": "#/components/schemas/MessageView"
      },
      "type": "array",
      "title": "Messages"
    },
    "deadline_reviewed_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Deadline Reviewed At Unix Seconds"
    },
    "approved_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Approved At Unix Seconds"
    },
    "fulfilled_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fulfilled At Unix Seconds"
    },
    "closed_at_unix_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Closed At Unix Seconds"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "request_id",
    "id",
    "public_tracking_number",
    "requester",
    "requester_contact",
    "submitted_via",
    "summary",
    "deadline",
    "deadline_basis",
    "status",
    "assigned_to",
    "clarification_notes",
    "search_notes",
    "search_sessions",
    "exemption_reviews",
    "exemption_decisions",
    "fee_estimate",
    "fee_line_items",
    "fee_waiver_reason",
    "citations",
    "response_draft",
    "approval_notes",
    "exports",
    "timeline",
    "public_status_events",
    "messages",
    "deadline_reviewed_at_unix_seconds",
    "approved_at_unix_seconds",
    "fulfilled_at_unix_seconds",
    "closed_at_unix_seconds",
    "created_at_unix_seconds"
  ],
  "title": "RecordsView"
}
ReleasePackageView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "export_path": {
      "type": "string",
      "title": "Export Path"
    },
    "package_hash": {
      "type": "string",
      "title": "Package Hash"
    },
    "document_count": {
      "type": "integer",
      "title": "Document Count"
    },
    "release_artifact_count": {
      "type": "integer",
      "title": "Release Artifact Count"
    },
    "search_session_count": {
      "type": "integer",
      "title": "Search Session Count"
    },
    "release_count": {
      "type": "integer",
      "title": "Release Count"
    },
    "redacted_count": {
      "type": "integer",
      "title": "Redacted Count"
    },
    "exempt_count": {
      "type": "integer",
      "title": "Exempt Count"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "export_path",
    "package_hash",
    "document_count",
    "release_artifact_count",
    "search_session_count",
    "release_count",
    "redacted_count",
    "exempt_count",
    "created_at_unix_seconds"
  ],
  "title": "ReleasePackageView"
}
RepeatLookup
{
  "properties": {
    "property_reference": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Property Reference"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "property_reference"
  ],
  "title": "RepeatLookup"
}
RequestCreate
{
  "properties": {
    "requester_name": {
      "type": "string",
      "maxLength": 255,
      "title": "Requester Name"
    },
    "requester_email": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Email"
    },
    "requester_phone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 50
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Phone"
    },
    "requester_type": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 100
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Type"
    },
    "description": {
      "type": "string",
      "maxLength": 10000,
      "title": "Description"
    },
    "statutory_deadline": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Deadline"
    },
    "priority": {
      "type": "string",
      "title": "Priority",
      "default": "normal"
    },
    "scope_assessment": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^(narrow|moderate|broad)$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scope Assessment"
    },
    "department_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Department Id"
    }
  },
  "type": "object",
  "required": [
    "requester_name",
    "description"
  ],
  "title": "RequestCreate"
}
RequestDocumentAdd
{
  "properties": {
    "document_id": {
      "type": "string",
      "format": "uuid",
      "title": "Document Id"
    },
    "relevance_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Relevance Note"
    }
  },
  "type": "object",
  "required": [
    "document_id"
  ],
  "title": "RequestDocumentAdd"
}
RequestDocumentRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "document_id": {
      "type": "string",
      "format": "uuid",
      "title": "Document Id"
    },
    "relevance_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Relevance Note"
    },
    "exemption_flags": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Exemption Flags"
    },
    "inclusion_status": {
      "$ref": "#/components/schemas/InclusionStatus"
    },
    "attached_at": {
      "type": "string",
      "format": "date-time",
      "title": "Attached At"
    },
    "attached_by": {
      "type": "string",
      "format": "uuid",
      "title": "Attached By"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "document_id",
    "relevance_note",
    "exemption_flags",
    "inclusion_status",
    "attached_at",
    "attached_by"
  ],
  "title": "RequestDocumentRead"
}
RequestRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "requester_name": {
      "type": "string",
      "title": "Requester Name"
    },
    "requester_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Email"
    },
    "requester_phone": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Phone"
    },
    "requester_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Requester Type"
    },
    "date_received": {
      "type": "string",
      "format": "date-time",
      "title": "Date Received"
    },
    "statutory_deadline": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Deadline"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "status": {
      "$ref": "#/components/schemas/RequestStatus"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "created_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "response_draft": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Response Draft"
    },
    "review_notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Review Notes"
    },
    "department_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Department Id"
    },
    "estimated_fee": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Estimated Fee"
    },
    "fee_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fee Status"
    },
    "fee_waiver_requested": {
      "type": "boolean",
      "title": "Fee Waiver Requested",
      "default": false
    },
    "priority": {
      "type": "string",
      "title": "Priority",
      "default": "normal"
    },
    "scope_assessment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scope Assessment"
    },
    "closed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Closed At"
    },
    "closure_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Closure Reason"
    }
  },
  "type": "object",
  "required": [
    "id",
    "requester_name",
    "requester_email",
    "date_received",
    "statutory_deadline",
    "description",
    "status",
    "assigned_to",
    "created_by",
    "created_at",
    "response_draft",
    "review_notes"
  ],
  "title": "RequestRead"
}
RequestStats
{
  "properties": {
    "total_requests": {
      "type": "integer",
      "title": "Total Requests"
    },
    "by_status": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Status"
    },
    "approaching_deadline": {
      "type": "integer",
      "title": "Approaching Deadline"
    },
    "overdue": {
      "type": "integer",
      "title": "Overdue"
    }
  },
  "type": "object",
  "required": [
    "total_requests",
    "by_status",
    "approaching_deadline",
    "overdue"
  ],
  "title": "RequestStats"
}
RequestStatus
{
  "type": "string",
  "enum": [
    "received",
    "clarification_needed",
    "assigned",
    "searching",
    "in_review",
    "ready_for_release",
    "drafted",
    "approved",
    "fulfilled",
    "closed"
  ],
  "title": "RequestStatus"
}
RequestUpdate
{
  "properties": {
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "status": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/RequestStatus"
        },
        {
          "type": "null"
        }
      ]
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "response_draft": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Response Draft"
    },
    "statutory_deadline": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Statutory Deadline"
    },
    "scope_assessment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Scope Assessment"
    }
  },
  "type": "object",
  "title": "RequestUpdate"
}
RequirementBundle
{
  "properties": {
    "requirement_id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,100}$",
      "title": "Requirement Id"
    },
    "title": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Title"
    },
    "jurisdiction": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Jurisdiction"
    },
    "project_type": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Project Type"
    },
    "source_reference": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "title": "Source Reference"
    },
    "source_date": {
      "type": "string",
      "format": "date",
      "title": "Source Date"
    },
    "effective_on": {
      "type": "string",
      "format": "date",
      "title": "Effective On"
    },
    "dataset_kind": {
      "type": "string",
      "enum": [
        "municipal",
        "fictional"
      ],
      "title": "Dataset Kind"
    },
    "filename": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,150}$",
      "title": "Filename"
    },
    "content_base64": {
      "type": "string",
      "maxLength": 14000000,
      "minLength": 1,
      "title": "Content Base64"
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Sha256"
    },
    "materials": {
      "items": {
        "$ref": "#/components/schemas/Material"
      },
      "type": "array",
      "maxItems": 100,
      "minItems": 1,
      "title": "Materials"
    },
    "pathway": {
      "items": {
        "$ref": "#/components/schemas/PathwayStep"
      },
      "type": "array",
      "maxItems": 100,
      "title": "Pathway"
    },
    "fee_link": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/townlight_permitting__workflow_models__SourceLink"
        },
        {
          "type": "null"
        }
      ]
    },
    "staff_note": {
      "type": "string",
      "maxLength": 4000,
      "title": "Staff Note",
      "default": ""
    },
    "change_note": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Change Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "requirement_id",
    "title",
    "jurisdiction",
    "project_type",
    "source_reference",
    "source_date",
    "effective_on",
    "dataset_kind",
    "filename",
    "content_base64",
    "sha256",
    "materials",
    "change_note"
  ],
  "title": "RequirementBundle"
}
ResponseLetterCreate
{
  "properties": {
    "template_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Template Id"
    }
  },
  "type": "object",
  "title": "ResponseLetterCreate"
}
ResponseLetterRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "template_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Template Id"
    },
    "generated_content": {
      "type": "string",
      "title": "Generated Content"
    },
    "edited_content": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Edited Content"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "generated_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Generated By"
    },
    "approved_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Approved By"
    },
    "sent_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sent At"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "template_id",
    "generated_content",
    "edited_content",
    "status",
    "generated_by",
    "approved_by",
    "sent_at",
    "created_at"
  ],
  "title": "ResponseLetterRead"
}
ResponseLetterUpdate
{
  "properties": {
    "edited_content": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Edited Content"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    }
  },
  "type": "object",
  "title": "ResponseLetterUpdate"
}
ReviewInput
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 500,
      "title": "Title",
      "default": ""
    },
    "body": {
      "type": "string",
      "maxLength": 5000,
      "title": "Body",
      "default": ""
    },
    "hasAltText": {
      "type": "boolean",
      "title": "Hasalttext",
      "default": false
    },
    "language": {
      "type": "string",
      "maxLength": 80,
      "title": "Language",
      "default": "en"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "title": "ReviewInput"
}
Revision
{
  "properties": {
    "sequence": {
      "type": "integer",
      "minimum": 1.0,
      "title": "Sequence"
    },
    "document": {
      "$ref": "#/components/schemas/NoticeDraft"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sequence",
    "document"
  ],
  "title": "Revision"
}
RewriteInput
{
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "plain-language",
        "language-variant"
      ],
      "title": "Action"
    },
    "text": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Text"
    },
    "language": {
      "type": "string",
      "maxLength": 80,
      "title": "Language",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "text"
  ],
  "title": "RewriteInput"
}
RewriteResult
{
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "plain-language",
        "language-variant"
      ],
      "title": "Action"
    },
    "text": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Text"
    },
    "language": {
      "type": "string",
      "maxLength": 80,
      "title": "Language",
      "default": ""
    },
    "outcome": {
      "type": "string",
      "enum": [
        "generated",
        "unavailable"
      ],
      "title": "Outcome"
    },
    "generated": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 100000
        },
        {
          "type": "null"
        }
      ],
      "title": "Generated"
    },
    "model": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "title": "Model"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "text",
    "outcome"
  ],
  "title": "RewriteResult"
}
Rule
{
  "properties": {
    "jurisdiction": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Jurisdiction"
    },
    "zone_code": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "title": "Zone Code"
    },
    "key": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "title": "Key"
    },
    "section_number": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Section Number"
    },
    "kind": {
      "type": "string",
      "enum": [
        "use",
        "dimension"
      ],
      "title": "Kind"
    },
    "value": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Value"
    },
    "overlay_code": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255
        },
        {
          "type": "null"
        }
      ],
      "title": "Overlay Code"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "jurisdiction",
    "zone_code",
    "key",
    "section_number",
    "kind",
    "value"
  ],
  "title": "Rule"
}
RuleTestMatch
{
  "properties": {
    "matched_text": {
      "type": "string",
      "title": "Matched Text"
    },
    "start": {
      "type": "integer",
      "title": "Start"
    },
    "end": {
      "type": "integer",
      "title": "End"
    }
  },
  "type": "object",
  "required": [
    "matched_text",
    "start",
    "end"
  ],
  "title": "RuleTestMatch"
}
RuleTestRequest
{
  "properties": {
    "sample_text": {
      "type": "string",
      "title": "Sample Text"
    }
  },
  "type": "object",
  "required": [
    "sample_text"
  ],
  "title": "RuleTestRequest"
}
RuleTestResponse
{
  "properties": {
    "rule_id": {
      "type": "string",
      "format": "uuid",
      "title": "Rule Id"
    },
    "rule_type": {
      "type": "string",
      "title": "Rule Type"
    },
    "matched": {
      "type": "boolean",
      "title": "Matched"
    },
    "matches": {
      "items": {
        "$ref": "#/components/schemas/RuleTestMatch"
      },
      "type": "array",
      "title": "Matches"
    }
  },
  "type": "object",
  "required": [
    "rule_id",
    "rule_type",
    "matched",
    "matches"
  ],
  "title": "RuleTestResponse"
}
RuleType
{
  "type": "string",
  "enum": [
    "regex",
    "keyword",
    "llm_prompt"
  ],
  "title": "RuleType"
}
SaveReview
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 500,
      "title": "Title",
      "default": ""
    },
    "body": {
      "type": "string",
      "maxLength": 5000,
      "title": "Body",
      "default": ""
    },
    "hasAltText": {
      "type": "boolean",
      "title": "Hasalttext",
      "default": false
    },
    "language": {
      "type": "string",
      "maxLength": 80,
      "title": "Language",
      "default": "en"
    },
    "ai_analysis": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 100000
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Analysis"
    },
    "ai_analysis_model": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Analysis Model"
    },
    "ai_outcome": {
      "type": "string",
      "enum": [
        "generated",
        "unavailable",
        "failed"
      ],
      "title": "Ai Outcome"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "ai_outcome"
  ],
  "title": "SaveReview"
}
SearchFilterOptions
{
  "properties": {
    "file_types": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "File Types"
    },
    "source_names": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Source Names"
    },
    "departments": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": "array",
      "title": "Departments",
      "default": []
    },
    "date_range": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date Range"
    }
  },
  "type": "object",
  "required": [
    "file_types",
    "source_names"
  ],
  "title": "SearchFilterOptions"
}
SearchInput
{
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "query"
  ],
  "title": "SearchInput"
}
SearchNoteCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "record-records-search",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/SearchNotePayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "SearchNoteCommand"
}
SearchNotePayload
{
  "properties": {
    "sourceNote": {
      "type": "string",
      "minLength": 1,
      "title": "Sourcenote"
    },
    "citation": {
      "type": "string",
      "title": "Citation",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sourceNote"
  ],
  "title": "SearchNotePayload"
}
SearchReceiptCommand
{
  "properties": {
    "action": {
      "type": "string",
      "const": "record-records-search-session",
      "title": "Action"
    },
    "payload": {
      "$ref": "#/components/schemas/SearchReceiptPayload"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action",
    "payload"
  ],
  "title": "SearchReceiptCommand"
}
SearchReceiptPayload
{
  "properties": {
    "searchQuery": {
      "type": "string",
      "minLength": 1,
      "title": "Searchquery"
    },
    "searchLocations": {
      "type": "string",
      "minLength": 1,
      "title": "Searchlocations"
    },
    "searchResultTitle": {
      "type": "string",
      "minLength": 1,
      "title": "Searchresulttitle"
    },
    "searchResultCitation": {
      "type": "string",
      "minLength": 1,
      "title": "Searchresultcitation"
    },
    "searchResultSummary": {
      "type": "string",
      "minLength": 1,
      "title": "Searchresultsummary"
    },
    "searchResultStatus": {
      "type": "string",
      "title": "Searchresultstatus",
      "default": ""
    },
    "searchReviewer": {
      "type": "string",
      "title": "Searchreviewer",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "searchQuery",
    "searchLocations",
    "searchResultTitle",
    "searchResultCitation",
    "searchResultSummary"
  ],
  "title": "SearchReceiptPayload"
}
SearchReceiptView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "query": {
      "type": "string",
      "title": "Query"
    },
    "locations": {
      "type": "string",
      "title": "Locations"
    },
    "reviewer": {
      "type": "string",
      "title": "Reviewer"
    },
    "results": {
      "items": {
        "$ref": "#/components/schemas/SearchResultView"
      },
      "type": "array",
      "title": "Results"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "query",
    "locations",
    "reviewer",
    "results",
    "created_at_unix_seconds"
  ],
  "title": "SearchReceiptView"
}
SearchRequest
{
  "properties": {
    "query": {
      "type": "string",
      "title": "Query"
    },
    "session_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Session Id"
    },
    "filters": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Filters"
    },
    "limit": {
      "type": "integer",
      "maximum": 50.0,
      "title": "Limit",
      "default": 10
    },
    "synthesize": {
      "type": "boolean",
      "title": "Synthesize",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "query"
  ],
  "title": "SearchRequest"
}
SearchResponse
{
  "properties": {
    "query_id": {
      "type": "string",
      "format": "uuid",
      "title": "Query Id"
    },
    "session_id": {
      "type": "string",
      "format": "uuid",
      "title": "Session Id"
    },
    "query_text": {
      "type": "string",
      "title": "Query Text"
    },
    "results": {
      "items": {
        "$ref": "#/components/schemas/SearchResultItem"
      },
      "type": "array",
      "title": "Results"
    },
    "results_count": {
      "type": "integer",
      "title": "Results Count"
    },
    "synthesized_answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Synthesized Answer"
    },
    "ai_generated": {
      "type": "boolean",
      "title": "Ai Generated",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "query_id",
    "session_id",
    "query_text",
    "results",
    "results_count"
  ],
  "title": "SearchResponse"
}
SearchResultItem
{
  "properties": {
    "chunk_id": {
      "type": "string",
      "format": "uuid",
      "title": "Chunk Id"
    },
    "document_id": {
      "type": "string",
      "format": "uuid",
      "title": "Document Id"
    },
    "filename": {
      "type": "string",
      "title": "Filename"
    },
    "file_type": {
      "type": "string",
      "title": "File Type"
    },
    "source_path": {
      "type": "string",
      "title": "Source Path"
    },
    "page_number": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Page Number"
    },
    "content_text": {
      "type": "string",
      "title": "Content Text"
    },
    "similarity_score": {
      "type": "number",
      "title": "Similarity Score"
    },
    "rank": {
      "type": "integer",
      "title": "Rank"
    }
  },
  "type": "object",
  "required": [
    "chunk_id",
    "document_id",
    "filename",
    "file_type",
    "source_path",
    "page_number",
    "content_text",
    "similarity_score",
    "rank"
  ],
  "title": "SearchResultItem"
}
SearchResultView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "citation": {
      "type": "string",
      "title": "Citation"
    },
    "summary": {
      "type": "string",
      "title": "Summary"
    },
    "status": {
      "type": "string",
      "title": "Status"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "title",
    "citation",
    "summary",
    "status"
  ],
  "title": "SearchResultView"
}
SearchSessionRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "user_id": {
      "type": "string",
      "format": "uuid",
      "title": "User Id"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "queries": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "type": "array",
      "title": "Queries",
      "default": []
    }
  },
  "type": "object",
  "required": [
    "id",
    "user_id",
    "created_at"
  ],
  "title": "SearchSessionRead"
}
SectionCreate
{
  "properties": {
    "section_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section Id"
    },
    "chapter_id": {
      "type": "string",
      "minLength": 1,
      "title": "Chapter Id"
    },
    "section_number": {
      "type": "string",
      "minLength": 1,
      "title": "Section Number"
    },
    "section_heading": {
      "type": "string",
      "minLength": 1,
      "title": "Section Heading"
    },
    "parent_section_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parent Section Id"
    },
    "sort_order": {
      "type": "integer",
      "title": "Sort Order",
      "default": 0
    },
    "administrative_regulation_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Administrative Regulation Refs"
    },
    "resolution_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Resolution Refs"
    },
    "policy_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Policy Refs"
    },
    "approved_summary_refs": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Approved Summary Refs"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "chapter_id",
    "section_number",
    "section_heading"
  ],
  "title": "SectionCreate",
  "description": "Request body for creating a code section or subsection."
}
SectionVersionCreate
{
  "properties": {
    "version_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Version Id"
    },
    "section_id": {
      "type": "string",
      "minLength": 1,
      "title": "Section Id"
    },
    "source_id": {
      "type": "string",
      "minLength": 1,
      "title": "Source Id"
    },
    "version_label": {
      "type": "string",
      "minLength": 1,
      "title": "Version Label"
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "title": "Body"
    },
    "effective_start": {
      "type": "string",
      "format": "date",
      "title": "Effective Start"
    },
    "effective_end": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Effective End"
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "draft"
    },
    "is_current": {
      "type": "boolean",
      "title": "Is Current",
      "default": false
    },
    "adoption_event_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Adoption Event Id"
    },
    "amendment_event_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Amendment Event Id"
    },
    "amendment_summary": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Amendment Summary"
    },
    "prior_version_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Prior Version Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "section_id",
    "source_id",
    "version_label",
    "body",
    "effective_start"
  ],
  "title": "SectionVersionCreate",
  "description": "Request body for adding an immutable section version."
}
Selection
{
  "properties": {
    "recording_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recording Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "title": "Expected Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "recording_id",
    "expected_sha256"
  ],
  "title": "Selection"
}
SentenceInput
{
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    },
    "citations": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Citations"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "text"
  ],
  "title": "SentenceInput"
}
ServiceAccountCreate
{
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "role": {
      "$ref": "#/components/schemas/UserRole",
      "default": "read_only"
    }
  },
  "type": "object",
  "required": [
    "name"
  ],
  "title": "ServiceAccountCreate"
}
ServiceAccountCreated
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "role": {
      "$ref": "#/components/schemas/UserRole"
    },
    "created_by": {
      "type": "string",
      "format": "uuid",
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    },
    "api_key": {
      "type": "string",
      "title": "Api Key"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "role",
    "created_by",
    "created_at",
    "is_active",
    "api_key"
  ],
  "title": "ServiceAccountCreated",
  "description": "Returned only on creation — includes the plaintext API key (shown once)."
}
ServiceAccountRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "role": {
      "$ref": "#/components/schemas/UserRole"
    },
    "created_by": {
      "type": "string",
      "format": "uuid",
      "title": "Created By"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "role",
    "created_by",
    "created_at",
    "is_active"
  ],
  "title": "ServiceAccountRead"
}
ServiceAccountUpdate
{
  "properties": {
    "role": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/UserRole"
        },
        {
          "type": "null"
        }
      ]
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    }
  },
  "type": "object",
  "title": "ServiceAccountUpdate"
}
Snapshot
{
  "properties": {
    "expected_revision": {
      "type": "string",
      "format": "uuid",
      "title": "Expected Revision"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "staff_only",
        "public"
      ],
      "title": "Visibility"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "expected_revision",
    "visibility"
  ],
  "title": "Snapshot"
}
SourceCreate
{
  "properties": {
    "source_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "title": "Name"
    },
    "publisher": {
      "type": "string",
      "minLength": 1,
      "title": "Publisher"
    },
    "source_type": {
      "type": "string",
      "minLength": 1,
      "title": "Source Type"
    },
    "source_category": {
      "type": "string",
      "minLength": 1,
      "title": "Source Category"
    },
    "source_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Url"
    },
    "file_reference": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "File Reference"
    },
    "retrieved_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Retrieved At"
    },
    "retrieval_method": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Retrieval Method"
    },
    "checksum": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Checksum"
    },
    "source_owner": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Owner"
    },
    "is_official": {
      "type": "boolean",
      "title": "Is Official",
      "default": true
    },
    "official_status_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Official Status Note"
    },
    "status": {
      "type": "string",
      "title": "Status",
      "default": "draft"
    },
    "staff_notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Staff Notes"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "name",
    "publisher",
    "source_type",
    "source_category"
  ],
  "title": "SourceCreate",
  "description": "Request body for registering an official or explicitly labeled source."
}
SourceInput
{
  "properties": {
    "source_id": {
      "type": "string",
      "minLength": 1,
      "title": "Source Id"
    },
    "label": {
      "type": "string",
      "minLength": 1,
      "title": "Label"
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "title": "Text"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "label",
    "text"
  ],
  "title": "SourceInput"
}
SourceSnapshot
{
  "properties": {
    "visibility": {
      "type": "string",
      "enum": [
        "public",
        "staff_only"
      ],
      "title": "Visibility"
    },
    "meeting_event_ids": {
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "type": "array",
      "maxItems": 50,
      "title": "Meeting Event Ids"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "visibility"
  ],
  "title": "SourceSnapshot"
}
SourceType
{
  "type": "string",
  "enum": [
    "manual_drop",
    "file_system",
    "rest_api",
    "odbc"
  ],
  "title": "SourceType"
}
StaffRecordsIntake
{
  "properties": {
    "requester": {
      "type": "string",
      "minLength": 1,
      "title": "Requester"
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "title": "Summary"
    },
    "deadline": {
      "type": "string",
      "title": "Deadline"
    },
    "deadlineBasis": {
      "type": "string",
      "title": "Deadlinebasis",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "requester",
    "summary",
    "deadline"
  ],
  "title": "StaffRecordsIntake",
  "description": "Existing native create-records-request input; no caller-supplied actor."
}
StandardsExplanation
{
  "properties": {
    "question": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Question"
    },
    "process_section": {
      "type": "string",
      "maxLength": 255,
      "title": "Process Section",
      "default": ""
    },
    "zone_code": {
      "type": "string",
      "maxLength": 40,
      "title": "Zone Code",
      "default": ""
    },
    "rule_types": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 10,
      "title": "Rule Types"
    },
    "observed": {
      "additionalProperties": {
        "type": "string"
      },
      "type": "object",
      "title": "Observed"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "question"
  ],
  "title": "StandardsExplanation"
}
SyncFailureRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "source_id": {
      "type": "string",
      "format": "uuid",
      "title": "Source Id"
    },
    "source_path": {
      "type": "string",
      "title": "Source Path"
    },
    "error_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Message"
    },
    "error_class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Class"
    },
    "http_status_code": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Http Status Code"
    },
    "retry_count": {
      "type": "integer",
      "title": "Retry Count"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "first_failed_at": {
      "type": "string",
      "format": "date-time",
      "title": "First Failed At"
    },
    "last_retried_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Retried At"
    },
    "dismissed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dismissed At"
    },
    "dismissed_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dismissed By"
    }
  },
  "type": "object",
  "required": [
    "id",
    "source_id",
    "source_path",
    "error_message",
    "error_class",
    "http_status_code",
    "retry_count",
    "status",
    "first_failed_at",
    "last_retried_at",
    "dismissed_at",
    "dismissed_by"
  ],
  "title": "SyncFailureRead"
}
SyncRunLogRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "source_id": {
      "type": "string",
      "format": "uuid",
      "title": "Source Id"
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "title": "Started At"
    },
    "finished_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Finished At"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    },
    "records_attempted": {
      "type": "integer",
      "title": "Records Attempted"
    },
    "records_succeeded": {
      "type": "integer",
      "title": "Records Succeeded"
    },
    "records_failed": {
      "type": "integer",
      "title": "Records Failed"
    },
    "error_summary": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Error Summary"
    }
  },
  "type": "object",
  "required": [
    "id",
    "source_id",
    "started_at",
    "finished_at",
    "status",
    "records_attempted",
    "records_succeeded",
    "records_failed",
    "error_summary"
  ],
  "title": "SyncRunLogRead"
}
SystemStatus
{
  "properties": {
    "version": {
      "type": "string",
      "title": "Version"
    },
    "database": {
      "type": "string",
      "title": "Database"
    },
    "ollama": {
      "type": "string",
      "title": "Ollama"
    },
    "redis": {
      "type": "string",
      "title": "Redis"
    },
    "user_count": {
      "type": "integer",
      "title": "User Count"
    },
    "audit_log_count": {
      "type": "integer",
      "title": "Audit Log Count"
    },
    "suite_session": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suite Session"
    }
  },
  "type": "object",
  "required": [
    "version",
    "database",
    "ollama",
    "redis",
    "user_count",
    "audit_log_count"
  ],
  "title": "SystemStatus"
}
TaggedPlan
{
  "properties": {
    "action": {
      "type": "string",
      "const": "tagged-pdf",
      "title": "Action"
    },
    "headingLevels": {
      "items": {
        "type": "integer",
        "maximum": 4294967295.0,
        "minimum": 0.0
      },
      "type": "array",
      "maxItems": 50,
      "title": "Headinglevels"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "action"
  ],
  "title": "TaggedPlan"
}
TestConnectionRequest
{
  "properties": {
    "source_type": {
      "type": "string",
      "title": "Source Type"
    },
    "host": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Host"
    },
    "port": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Port"
    },
    "path": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Path"
    },
    "username": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Username"
    },
    "password": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Password"
    },
    "rest_api_config": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Rest Api Config"
    },
    "odbc_config": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Odbc Config"
    }
  },
  "type": "object",
  "required": [
    "source_type"
  ],
  "title": "TestConnectionRequest",
  "description": "Dedicated schema for test-connection. NOT the create schema.\n\nSecurity: credentials in this request body are never persisted, never\nwritten to audit logs, and never returned in the response."
}
TestConnectionResponse
{
  "properties": {
    "success": {
      "type": "boolean",
      "title": "Success"
    },
    "message": {
      "type": "string",
      "title": "Message"
    },
    "latency_ms": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latency Ms"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    },
    "warning": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Warning"
    },
    "differing_keys": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Differing Keys"
    }
  },
  "type": "object",
  "required": [
    "success",
    "message"
  ],
  "title": "TestConnectionResponse"
}
TimelineEventCreate
{
  "properties": {
    "event_type": {
      "type": "string",
      "title": "Event Type"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "internal_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Internal Note"
    }
  },
  "type": "object",
  "required": [
    "event_type",
    "description"
  ],
  "title": "TimelineEventCreate"
}
TimelineEventRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "title": "Request Id"
    },
    "event_type": {
      "type": "string",
      "title": "Event Type"
    },
    "actor_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Actor Id"
    },
    "actor_role": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Actor Role"
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "internal_note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Internal Note"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "request_id",
    "event_type",
    "actor_id",
    "actor_role",
    "description",
    "internal_note",
    "created_at"
  ],
  "title": "TimelineEventRead"
}
TimelineView
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "action": {
      "type": "string",
      "title": "Action"
    },
    "actor": {
      "type": "string",
      "title": "Actor"
    },
    "note": {
      "type": "string",
      "title": "Note"
    },
    "created_at_unix_seconds": {
      "type": "integer",
      "title": "Created At Unix Seconds"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "action",
    "actor",
    "note",
    "created_at_unix_seconds"
  ],
  "title": "TimelineView"
}
TitleCreate
{
  "properties": {
    "title_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Title Id"
    },
    "title_number": {
      "type": "string",
      "minLength": 1,
      "title": "Title Number"
    },
    "title_name": {
      "type": "string",
      "minLength": 1,
      "title": "Title Name"
    },
    "sort_order": {
      "type": "integer",
      "title": "Sort Order",
      "default": 0
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "title_number",
    "title_name"
  ],
  "title": "TitleCreate",
  "description": "Request body for creating a code title."
}
TranscriptInput
{
  "properties": {
    "source_label": {
      "type": "string",
      "minLength": 1,
      "title": "Source Label"
    },
    "transcript_text": {
      "type": "string",
      "minLength": 1,
      "title": "Transcript Text"
    },
    "correction_of_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Correction Of Id"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_label",
    "transcript_text"
  ],
  "title": "TranscriptInput"
}
UserRead
{
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "title": "Id"
    },
    "email": {
      "type": "string",
      "format": "email",
      "title": "Email"
    },
    "is_active": {
      "type": "boolean",
      "title": "Is Active",
      "default": true
    },
    "is_superuser": {
      "type": "boolean",
      "title": "Is Superuser",
      "default": false
    },
    "is_verified": {
      "type": "boolean",
      "title": "Is Verified",
      "default": false
    },
    "full_name": {
      "type": "string",
      "title": "Full Name"
    },
    "role": {
      "$ref": "#/components/schemas/UserRole"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "last_login": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Login"
    },
    "must_change_password": {
      "type": "boolean",
      "title": "Must Change Password",
      "default": false
    },
    "department_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Department Id"
    }
  },
  "type": "object",
  "required": [
    "id",
    "email",
    "full_name",
    "role",
    "created_at",
    "last_login"
  ],
  "title": "UserRead"
}
UserRole
{
  "type": "string",
  "enum": [
    "admin",
    "staff",
    "reviewer",
    "read_only",
    "liaison",
    "public"
  ],
  "title": "UserRole"
}
UserSelfUpdate
{
  "properties": {
    "password": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Password"
    },
    "email": {
      "anyOf": [
        {
          "type": "string",
          "format": "email"
        },
        {
          "type": "null"
        }
      ],
      "title": "Email"
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    },
    "is_superuser": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Superuser"
    },
    "is_verified": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Verified"
    },
    "full_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Full Name"
    }
  },
  "type": "object",
  "title": "UserSelfUpdate",
  "description": "Schema for user self-update via PATCH /users/me.\n\nExcludes role and department_id. Any payload containing those fields is\nrejected at parse time (HTTP 422). Role and department changes require\nadmin privileges via /admin/users/{id}."
}
UserUpdateRequest
{
  "properties": {
    "full_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Full Name"
    },
    "role": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Role"
    },
    "department_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Department Id"
    },
    "is_active": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Active"
    }
  },
  "type": "object",
  "title": "UserUpdateRequest"
}
ValidationError
{
  "properties": {
    "loc": {
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      },
      "type": "array",
      "title": "Location"
    },
    "msg": {
      "type": "string",
      "title": "Message"
    },
    "type": {
      "type": "string",
      "title": "Error Type"
    },
    "input": {
      "title": "Input"
    },
    "ctx": {
      "type": "object",
      "title": "Context"
    }
  },
  "type": "object",
  "required": [
    "loc",
    "msg",
    "type"
  ],
  "title": "ValidationError"
}
Version
{
  "properties": {
    "sequence": {
      "type": "integer",
      "minimum": 1.0,
      "title": "Sequence"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sequence"
  ],
  "title": "Version"
}
VoteCorrection
{
  "properties": {
    "vote": {
      "type": "string",
      "minLength": 1,
      "title": "Vote"
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "title": "Reason"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "vote",
    "reason"
  ],
  "title": "VoteCorrection"
}
VoteInput
{
  "properties": {
    "voter_name": {
      "type": "string",
      "minLength": 1,
      "title": "Voter Name"
    },
    "vote": {
      "type": "string",
      "minLength": 1,
      "title": "Vote"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "voter_name",
    "vote"
  ],
  "title": "VoteInput"
}
_ParcelLookupIn
{
  "properties": {
    "jurisdiction": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Jurisdiction"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "jurisdiction",
    "query"
  ],
  "title": "_ParcelLookupIn"
}
townlight_inspections__workflow_models__SourceLink
{
  "properties": {
    "provider": {
      "type": "string",
      "const": "code",
      "title": "Provider",
      "default": "code"
    },
    "source_id": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Expected Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "source_id",
    "expected_sha256"
  ],
  "title": "SourceLink"
}
townlight_permitting__workflow_models__SourceLink
{
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "code",
        "zoning"
      ],
      "title": "Provider"
    },
    "source_id": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Source Id"
    },
    "expected_sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "title": "Expected Sha256"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "provider",
    "source_id",
    "expected_sha256"
  ],
  "title": "SourceLink"
}
townlight_runtime__inspections_bridge__Search
{
  "properties": {
    "provider": {
      "type": "string",
      "const": "code",
      "title": "Provider"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "provider",
    "query"
  ],
  "title": "Search"
}
townlight_runtime__notice_bridge__Review
{
  "properties": {
    "sequence": {
      "type": "integer",
      "minimum": 1.0,
      "title": "Sequence"
    },
    "note": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1,
      "title": "Note"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "sequence",
    "note"
  ],
  "title": "Review"
}
townlight_runtime__permitting_bridge__Import
{
  "properties": {
    "bundle": {
      "$ref": "#/components/schemas/RequirementBundle"
    },
    "expected_revision": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Revision"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "bundle"
  ],
  "title": "Import"
}
townlight_runtime__permitting_bridge__Search
{
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "code",
        "zoning"
      ],
      "title": "Provider"
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "provider",
    "query"
  ],
  "title": "Search"
}
townlight_runtime__planning_bridge__Import
{
  "properties": {
    "bundle": {
      "additionalProperties": true,
      "type": "object",
      "title": "Bundle"
    },
    "expected_previous_revision": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Previous Revision"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "bundle"
  ],
  "title": "Import"
}
townlight_runtime__planning_bridge__Search
{
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Query"
    },
    "plan_type": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ],
      "title": "Plan Type"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "query"
  ],
  "title": "Search"
}
townlight_runtime__zoning_bridge__Review
{
  "properties": {
    "answer": {
      "type": "string",
      "maxLength": 10000,
      "title": "Answer",
      "default": ""
    },
    "notes": {
      "type": "string",
      "maxLength": 10000,
      "title": "Notes",
      "default": ""
    },
    "queue_status": {
      "type": "string",
      "enum": [
        "open",
        "in_review",
        "resolved",
        "closed"
      ],
      "title": "Queue Status",
      "default": "resolved"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "title": "Review"
}